Articles of android activity

如何完成销毁活动

据我了解,被销毁的活动并不等同于正在完成的活动。 成品 活动将从后台堆栈中删除。 它可以由程序触发(例如通过调用finish() ),或者由用户按下后退键(隐式调用finish() )。 完成一项活动将摧毁它。 摧毁 Android操作系统可能会破坏不可见的活动以恢复内存。 当用户导航回活动时,将重新创建活动。 当用户旋转屏幕时,活动将被销毁并重新创建。 参考:重新创建活动 那么如何完成被破坏的活动呢? finish()方法需要一个Activity对象,但如果活动被销毁,我没有Activity对象 – 我不应该持有对被破坏活动的引用,是吗? 案例分析: 我有一个活动a ,它启动b ,然后启动c (使用Activity.startActivity() ),所以现在后面的堆栈是: a → b → c 在c ,用户填写表单并点击“提交”按钮。 使用AsyncTask向远程服务器发出网络请求。 任务完成后,我会显示一个祝酒词并通过调用c.finish()完成活动。 完善。 现在考虑这种情况: 当异步任务正在进行时,用户切换到另一个应用程序。 然后,由于内存限制,Android OS决定销毁所有3个活动( a , b , c )。 之后,异步任务完成。 现在我该如何完成c ? 我试过的: 调用c.finish() : 不能,因为c被破坏了。 调用b.finishActivity() : 不能,因为b被破坏了。 将Context.startActivity()与FLAG_ACTIVITY_CLEAR_TOP一起使用,以便将b提升到顶部,从而完成c : // […]

Android应用程序架构 – 在哪里放置REST API调用代码?

我想更好地了解如何构建Android应用程序,其中活动会触发API调用(例如)。 我目前通过将API调用放入AsyncTask子类来实现它,向它传递对活动的引用,以便它可以更新onPostExecute中的UI。 但我的直觉是,这会产生过度耦合的代码。 我想知道是否应该将这样的API调用放入服务中 ,并使用BroadcastReceiver来更新活动。 你怎么说,AsyncTask或BroadcastReceiver?

onPostExecute()的“在UI线程上运行”真的意味着什么?

考虑在Activity中启动的AsyncTask。 如果活动暂停或销毁会发生什么? onPostExecute()会运行吗? 如果是,将使用什么UI线程? 就是想。 提前谢谢了。

Android后退按钮行为

假设我们有一个带默认行为的默认空活动,使用默认意图标志启动。 用户按下设备上的后退按钮。 活动消失了……但实际上怎么样? 按下按钮的行为方式与finish()相同吗? 活动是否立即被破坏( onDestroy被称为)? 活动是否保证被销毁,但不能立即销毁? 是否有可能不会销毁活动,并且在将来启动此活动时将重复使用此实例? (所以只onStart onPause和onStop – > onStart和onResume ?) 我正在寻找一个可靠的答案,所以如果你不确定这里发生了什么,请不要回答。

Android Fragment getActivity()= null

我在我的应用程序中使用片段。 使用它们时非常常见的问题是使用getActivity()时的NPE。 我知道我们可以通过每次检查getActivity() != null或检查片段是否为isAdded()来解决它。 在我的一个课程中,我在60多个地方获得了活动的背景。 检查getActivity()是否为null或者片段是否仍然添加到所有位置的活动中会使代码变得丑陋,更大且不可维护。 有没有其他方法来处理这个? 当它从活动中移除时,甚至可以销毁碎片(并在被移除时停止它一直在做的工作)吗? 这是一个建议的方式吗?

如何在我的Android应用程序中启动Android应用程序?

在我的应用程序中有标签布局。 和两个标签。 选项卡1 – 我的应用程序 选项卡2 – 任何外部Android应用程序(如联系人,呼叫拨号器等..)(我知道如何启动外部应用程序,但它没有在我的应用程序中运行(意味着选项卡将不会在启动后显示))。 提前致谢

animation活动不属于您的应用

如何在不属于我的应用程序的活动上应用结束转换。 说,我正在打开联系人应用程序以选择联系人,我在打开联系人应用程序时应用向上滑动转换但关闭应用程序应用默认animation(向左滑动)。 是否有可能在关闭时设置animation?

Eclipse Juno不会创建Android Activity

我下载了Eclipse Juno Java EE edition并安装了ADT plugin 。 我从Eclipse创建了一个新的Android Application项目,在向导中我创建了一个名为TaskariActivity的活动。 按下完成后,它创建了项目,但没有创建活动,向导也没有关闭。 我按下了取消。 src文件夹中没有任何活动或任何内容。 我通过右键单击src,选择new -> other -> Android -> activity创建了一个新new -> other -> Android -> activity 。 我选择了BlankActivity(就像我之前创建项目时那样),在Projectcombobox中选择了之前创建的项目。 我将Activity名称设置为TaskariActivity,将layout name设置为activity_main,将title设置为TaskariActivity。 接下来我选择了导航types,然后将其设置为Tabs + Swipe (我认为这会使我成为标签,我必须做的一切就是插入元素和动作)。 我紧接着,没有任何事情发生。 完成也没有做任何事情。 我按下了取消,没有创建活动。 那么,我如何创建一个类似于早期版本的Eclipse的Android application ? 它会自动创建活动,并且已准备好开箱即用。 现在它不会生成任何文件,新的活动向导也不起作用。 帮帮我?

将数据从服务发送到Android活动

我正在构建一个使用服务进行播放的音乐播放器。 我有一个Activity UI来控制(播放,暂停,下一步……)服务。 我想在按下下一个或上一个按钮时从我的服务更新UI。 我想过传递一个整数值。 这是我的代码: 我用过信使进行交流。 我服务中的代码如下: enum Event { NextSongChanged, CurrentPlayingSong }; public synchronized void registerHandler(Messenger m) { clients.add(m); } private void emit(Event e) { for (Messenger m : clients) { try { m.send(Message.obtain(null, e.ordinal())); } catch (RemoteException exception) { /* The client must’ve died */ clients.remove(m); } } } 我打电话的方法点击下一步按钮: public synchronized […]

在恢复活动时,Android是否会恢复Intent附加function?

在Android Activity生命周期中,当恢复后调用Activity.onCreate()时(IE。不是在最初创建活动或响应屏幕旋转时),此代码是否会返回有效(非空)Bundle? public void onCreate(Bundle savedInstanceState) { Bundle b = this.getIntent().getExtras(); // is b == null? (when activity is resumed) } 我试图重现应用程序长时间未使用时出现的问题 – 当用户返回时,应用程序崩溃。