一.Activity 生命周期與啟動模式
- 1.1 正常下的生命周期
- 1.onCreate
- 2.onRestart -> onStart
從不可見到可見 - 3.onStart
從不可見到可見 - 4.onResume
從可見到可交互,
onStart的時候Activity還在后臺,onResume的時候Activity才到前臺 - onPause
存儲狀態(數據),輕量級回收
因為當新的Activity要啟動時候,會先調用舊的Activity的onPause后再啟動新Activity的onPause - onStop
即將變為不可見,重量級回收 - onDestroy
表示Activity被銷毀,做資源釋放 - 注意:
如果新Activity采用透明主題,當前Activity不會調用onStop
- 1.2 異常下的生命周期
- 1.原因
當系統資源不足或者配置發生改變的時候 - 2.當Activity被殺死重建后
被殺死Activity為A 新Activity為B (以下都采用A B代替)
調用方法 A.onSaveInstanceState() -> B.onRestoreInstanceState()
官方推薦 在onRestoreInstanceState 中恢復Activity的狀態
同時,正常情況下不會調用 onRestoreInstanceState - 3.原理
當Activity被意外殺死時,調用onSaveInstanceState()保存數據,
然后委托Window去保存數據,Window再拜托頂級容器,頂級容器再拜托子元素保存 - 4.當內存不足導致Activity被殺死
當內存不足時會按照:
1.前臺Activity 2.可見非前臺 3.后臺的順序殺死Activity 回收資源
所以,后臺工作盡量放在Service中運行.
- 1.原因