[英]Strange behavior of android application lifecycle
今天,我試圖在Eclipse中模擬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
我的疑問是,為什么連onPause of AnotherActivity都沒有被調用,而當ActivityManager重新創建進程時,為什么不重新創建AnotherActivity?
好的,我知道了。 如果日志指示內存不足,則系統會終止該進程,並且在新進程啟動時,它將嘗試查找一個以動作為主,類別為啟動器的活動。 這就是為什么要重新創建MainActivity的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.