安卓系统:应用程序生命周期与活动管理

4

我想了解关于Android应用程序生命周期的一些信息。假设这样的情况:我打开应用程序,然后锁定屏幕,在几个小时后,手机杀死了我的应用程序进程。当我解锁屏幕时会发生什么?我会看到什么屏幕?Android主屏幕?还是应用程序会自动重新启动?堆栈中的活动也会恢复吗?如果有任何帮助,我将不胜感激。谢谢...


1
我第一次听到“生命周期”这个词。 - Paresh Mayani
4个回答

7

Android应用程序有一个生命周期,但是应用程序对其自身生命周期的控制受到限制,相反,组件必须监听应用程序状态的变化,并做出相应的反应。这些变化如下:

  1. onCreate
  2. onLowMemory
  3. onTrimMemory
  4. onConfigurationChanged

如果需要根据应用程序状态进行特定操作,则可以通过扩展应用程序类并覆盖这些方法来实现。

祝好!


5

Activity生命周期是你需要了解的。

不存在应用程序生命周期或生命周期圈。每个Activity都有自己的生命周期。如果系统需要更多的RAM,则在onPause()onStop()状态下,它将被终止。如果所有的Activities都被杀死了,应用程序将不再可见。如果您想要数据持久化,必须覆盖onPause()onResume()并在这里保存/恢复数据。

如果有一个activity被杀死,您的应用程序不会自动恢复。如果您想要在activities被杀死后“恢复”,则必须手动跟踪您的activities。

更加精确地说,一个Activity可以被杀死,而其他Activity可以保持暂停状态。如果然后返回到您的应用程序,则获取您的activity堆栈中最后一个未被杀死的activity。


我正在寻找应用程序的生命周期,而不是Activity。 - Jim
是的,但答案在活动生命周期中。如果活动处于 onPause 或 onStop 状态,则任何活动都可能被杀死。 - stefan
活动可以被杀死,但应用程序不能。 - Jim
这就是为什么我提到了活动生命周期。 - stefan
不用谢!抱歉一开始没有表达清楚,让你感到困惑了。 - stefan
我了解了Activity的生命周期。所以如果谈论Update2,那么它写道,如果用户返回到已被销毁的Activity,那么Android将重新创建该Activity。这意味着onCreate方法将被调用。 - Jim

0
在某些情况下,您可以子类化应用程序类:
引用块: 需要维护全局应用程序状态的人的基类。 您可以通过在AndroidManifest.xml的中指定其名称来提供自己的实现,这将导致在创建应用程序/包的进程时为您实例化该类。
然后使用应用程序回调方法。

http://developer.android.com/reference/android/app/Application.html


0
如果您的应用程序被系统杀死,那么我认为当您解锁屏幕时它不会显示出来。如果在您的应用程序下面有主屏幕,则我认为它将显示出来,因为您的应用程序已被系统杀死。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接