說,是無法控制其
應用程序處於某一個狀態的,這些均由
系統來完成。
但是當一個活動的狀態發生改變的時候,
開發者可以通過調用 onXX() 的
方法獲取到相關的通知信息。
在實現 Activity 類的時候,通過覆蓋( override )這些方法即可在你需要處理的時候來調用。
- onCreate :當活動第一次啟動的時候,觸發該方法,可以在此時完成活動的初始化工作。
onCreate 方法有一個參數,該參數可以為空( null ),也可以是之前調用 onSaveInstanceState ()方法保存的狀態信息。
- onStart :該方法的觸發表示所屬活動將被展現給用戶。
- onResume :當一個活動和用戶發生交互的時候,觸發該方法。
- onPause :當一個正在前台運行的活動因為其他的活動需要前台運行而轉入後台運行的時候,觸發該方法。這時候需要將活動的狀態持久化,比如正在編輯的數據庫記錄等。
- onStop :當一個活動不再需要展示給用戶的時候,觸發該方法。如果內存緊張,系統會直接結束這個活動,而不會觸發 onStop 方法。 所以保存狀態信息是應該在onPause時做,而不是onStop時做。活動如果沒有在前台運行,都將被停止或者Linux管理進程為了給新的活動預留足夠的存儲空間而隨時結束這些活動。因此對於開發者來說,在設計應用程序的時候,必須時刻牢記這一原則。在一些情況下,onPause方法或許是活動觸發的最後的方法,因此開發者需要在這個時候保存需要保存的信息。
- onRestart :當處於停止狀態的活動需要再次展現給用戶的時候,觸發該方法。
- onDestroy :當活動銷毀的時候,觸發該方法。和 onStop 方法一樣,如果內存緊張,系統會直接結束這個活動而不會觸發該方法。
- onSaveInstanceState :系統調用該方法,允許活動保存之前的狀態,比如說在一串字符串中的光標所處的位置等。
通常情況下,開發者不需要重寫覆蓋該方法,在默認的實現中,已經提供了自動保存活動所涉及到的用戶界面組件的所有狀態信息。