2015-02-24 66 views
0

今天我試圖模擬eclipse中Android應用程序的低內存條件。但是我發現了一個奇怪的行爲。讓我來描述一下這個場景。Android應用程序生命週期的奇怪行爲

通過按第一個活動中的按鈕啓動一個活動並調用另一個活動。 現在從Eclipse-> DDMS-> Devices點擊「停止進程」。

我所看到的,沒有一個從第二個活動調用的回調,並且該進程立即死亡。之後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 

我的疑問是,爲什麼甚至AnotherActivity的的onPause不叫當通過ActivityManager重建過程中,爲什麼AnotherActivity沒有重現?

回答

1

好的人,我得到了答案。如果日誌記錄表明系統殺死進程並且新進程啓動時存在內存不足情況,則會嘗試查找以操作爲主,類別爲啓動器的活動。這就是MainActivity重新創建的原因。