Android应用程序生命周期的奇怪行为

时间:2015-02-24 14:35:55

标签: android android-activity android-lifecycle

今天我试图在eclipse中模拟Android应用程序的低内存条件。但我发现了一种奇怪的行为。让我来描述一下这个场景。

  

通过按第一个活动中的按钮启动活动并调用另一个活动。   现在从Eclipse-> DDMS->设备点击"停止流程"。

我已经看到没有回调从第二次活动中调用,并且该过程立即死亡。之后,ActivityManager启动了一个新流程并创建了第一个活动。

注意:第一个活动= MainActivity.java,第二个是AnotherActivity.java

02-24 09:01:04.740: I/ActivityManager(286): Process com.algopundit.lifecycle (pid 1378) has died.

02-24 09:01:04.740: W/ActivityManager(286): Force removing ActivityRecord{419fd8e8 u0 com.algopundit.lifecycle/.AnotherActivity}: app died, no saved state

02-24 09:01:04.752: I/WindowState(286): WIN DEATH: Window{41a418f0 u0 com.algopundit.lifecycle/com.algopundit.lifecycle.MainActivity}


02-24 09:01:05.090: I/ActivityManager(286): Start proc com.algopundit.lifecycle for activity com.algopundit.lifecycle/.MainActivity: pid=1412 uid=10053 gids={50053, 1028}


02-24 09:01:06.730: V/MainActivity(1412): onCreate

02-24 09:01:07.632: V/MainActivity(1412): onStart

02-24 09:01:07.632: V/MainActivity(1412): onRestoreInstanceState

02-24 09:01:07.660: V/MainActivity(1412): onResume

02-24 09:01:08.260: V/MainActivity(1412): onAttachedToWindow

我怀疑为什么即使onPause of AnotherActivity没有被调用,当ActivityManager重新创建进程时为什么没有重新创建AnotherActivity?

1 个答案:

答案 0 :(得分:1)

好的人,我得到了答案。在内存不足的情况下,因为日志表示系统终止了该进程,并且当新进程启动时,它尝试查找一个活动,其中action为主,类别为启动器。这就是MainActivity重新创建的原因。