[藝術探索]第一章Activity的生命週期和啓動模式

  1. 典型情況下的生命週期分析

    1). onCreate:Activity正在創建。生命週期的第一個方法,在這個方法中可以做一些初始化工作,比如調用setContentView去加載界面佈局資源,初始化Activity所需數據等。

    2).onRestart: 表示Activity正在重新啓動。噹噹前Activity從不可見狀態到可見狀態時,onRestart方法會被調用。這種情形一般是用戶行爲導致的。

    3).onStrat: 表示Activity正在被啓動,這時Activity已經可見了,但是還沒出現在前臺,還無法和用戶交互,這時候可以理解爲Activity已經顯示出來了,但是我們還看不到。

    4). onResume: 表示Activity已經可見了,並且出現在前臺並開始活動。

    5). onPause: 表示Activity正在停止,正常情況下onStop馬上會被調用。此時可以做一些存儲數據,停止動畫等工作,但是不能太耗時,因爲會影響到新Activity的顯示。onPause必須先執行完,新Activity onResume纔會執行。

    6). onStop: 表示Activity即將停止,可以做一些稍微輕重量級的回收工作,同樣不能耗時。

    7). onDestory: Activity即將被銷燬,這是Activity生命週期中最後一個回調,在這裏我們可以做一些回收工作和最終的資源釋放。

  2. 異常情況下的生命週期分析
    1).資源相關的系統配置發生改變導致Activity被殺死並重新創建
    橫豎屏切換:Activity被意外銷燬並立刻重新創建新的Activity。

    `onSaveInstanceState();` 銷燬時調用,用來存儲數據。
    
    `onCreate();` 新建`Activity`時調用,如果是被重建則參數`Bundle`不爲`null`,否則爲`null`;
    
    `onRestoreInstanceState();` 重建`Activity`時調用,用來恢復數據,此方法一經調用則說明參數`Bundle`不爲`null`;
    

onSaveInstanceState();onRestoreInstanceState();方法中系統自動爲我們做了一定的恢復動作,當Activity在異常情況下需要重建時,系統會默認爲我們保存當前Activity的視圖結構,並且在Activity重啓後爲我們恢復這些數據。比如文本框中用戶輸入的數據,ListView滾動的位置等,這些View相關的狀態系統都能默認爲我們恢復。(自定義View時想要做狀態恢復則需要善用onSaveInstanceState();onRestoreInstanceState();方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章