我試圖研究什麼時候爲活動調用onDestroy方法,但我已經閱讀了一些令人困惑和衝突的信息。總的來說,我的問題是:在什麼情況下onDestroy方法實際上是在一個activity上調用的?更具體地說,如果我有兩個活動,活動A和活動B,如果活動A正在運行並且我創建了一個意圖並切換到活動B,那麼活動A是僅停止了還是被銷燬?onStop vs onDestroy
回答
像官方documentation說:
onDestroy()
你的活動之前,您會收到最終的通話將被破壞。這可能是因爲活動正在完成(有人稱爲finish(),或者是因爲系統暫時銷燬此活動的實例以節省空間。您可以使用isFinishing()方法區分這兩個方案。
在您的例子活性的停止,可以通過系統
注意被摧毀每
documentation
以上鍊接:
......你在[onDestroy()
]不算被稱爲保存數據的地方... [見]onPause()
或onSaveInstanceState(Bundle)
。
活動可能除非系統必須爲其他任務/進程恢復內存,否則它一直處於暫停狀態。 – whoami 2016-04-27 01:50:07
OnDestroy將直接從任何調用中調用完成()onCreate,跳過onStop。當onStop返回時,onDestroy可以在殺死之後被忽略。從Honeycomb開始,應用程序在onStop()返回之前不處於可Killable狀態; pre-honeycomb onPause是可以驅動的狀態。 – 2018-01-07 01:48:39
onDestroy()
被稱爲每當:
- 用戶從「最近使用的應用」的屏幕佔據了活動。
- 用戶從「最近的應用程序」屏幕中取出活動。
- 用戶離開當前活動:
onStop()
時被調用。
因此,在您的示例中,當用戶啓動活動B時,活動A稱爲onStop()
。根據文件,onDestroy()
方法並不總是被調用。 onStop()
總是被調用,因此在活動停止之前移動您明確需要執行的代碼。
希望這有助於:d
不完全。這些是*可能性*,但不能保證onStop()或onDestroy()將被調用。 – 2015-03-30 21:15:47
@ChrisStratton如果在方法之前使用'@ Override',它將保證以特定的方法運行代碼,在這種情況下'onStop()'和'onDestroy()' – 2015-03-30 21:17:02
不,它不是。請參閱文檔。系統可以自由地僅僅殺死進程而不用打電話來調用這些方法。一般來說,它會打電話給他們,但文件說它是免費的。 – 2015-03-30 21:21:03
- 1. Android:「OnStop/OnDestroy」難題
- 2. Android onStop onDestroy onCreate後調用
- 3. onPause,onStop,onDestroy不停止定時器
- 4. Android片段生命週期onStop,onDestroyView,onDestroy和onDetach
- 5. 我應該放開onStop()或onDestroy()中的視圖引用等嗎?
- 6. 如何在延遲後從onStop()調用onDestroy()
- 7. Android onStop/onDestroy - 何時可以使用它們?
- 8. android生命週期onActivityResult vs onStop
- 9. Overriden onPause onStop onDestroy完成後在Cpp代碼中通過CCDirector :: sharedDirector() - > end()
- 10. Android NavigationView onDestroy不叫
- 11. onCreate()完成後()在onStop()
- 12. onDestroy()方法不起作用
- 13. Mapbox onStop片段
- 14. onStop()不會被調用?
- 15. 的onStop稱爲在onStart
- 16. 刪除片段的onStop通知()
- 17. onPause()或onStop()
- 18. MediaPlayer崩潰onStop()
- 19. 當onStop()調用
- 20. Android Activity-Lifecycle ...如何避免onDestroy()?
- 21. 不要調用onDestroy on onBackPressed
- 22. 相機意圖調用onDestroy()
- 23. 爲什麼調用onDestroy()方法?
- 24. Azure雲服務OnStop
- 25. 覆蓋onStop到處?
- 26. 如果它的onStop()
- 27. Onstop()不起作用
- 28. 調用alertDialog onStop/onPause
- 29. onDestroy被稱爲
- 30. OnPause(),OnResume()和OnDestroy
檢查在Android安卓生命週期: http://stackoverflow.com/questions/8515936/android-activity-life-cycle-what-are-all-these-methods-對於 – 2015-03-30 20:08:47
[Android onStop/onDestroy可能重複 - 何時可能會使用?](http://stackoverflow.com/questions/7236357/android-onstop-ondestroy-when-might-these-be-used) – 2016-03-07 14:53:05