簡體   English   中英

Android應用程序生命周期的奇怪行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM