Android 開發:(六)Activity生命週期以及函式意義
簡述:
1.在日常應用中Activity是與使用者互動的介面,它提供了一個使用者完成相關操作的視窗。當我們在開發中建立Activity後,通過呼叫setContentView(View)方法來給該Activity指定一個佈局介面,而這個介面就是提供給使用者互動的介面。Android系統中是通過Activity棧的方式來管理Activity的,而Activity自身則是通過生命週期的方法來管理的自己的建立與銷燬。
2.為了能夠使用Context.startActivity(),所有的activity類都必須在AndroidManifest.xml檔案中定義有相關的“activity”項。
常用函式:
1、 onCreate()
Activity首次建立時被呼叫。用於設定Activity的佈局檔案,繫結按鈕監聽器等一些普通靜態操作。
2、onStart()
Activity對使用者可見時被呼叫。
3、onResume()
Activity獲得使用者焦點,即使用者可操作該Activity時被呼叫。
4、onPause()
應用程式啟動了其它Activity時被呼叫。一般用於儲存當前Activity中的資料。
5、onStop()
Activity不可見時被呼叫。
6、onRestart()
已停止的Activity重新啟動時被呼叫。
7、onDestroy()
呼叫Activity的finish()方法或Android系統資源不足時被呼叫。
常用流程:
在上圖中,Activity有三個關鍵的迴圈:
1.整個的生命週期
從onCreate(Bundle)開始到onDestroy()結束。Activity在onCreate()設定所有的“全域性”狀態,在onDestory()釋放所有的資源。例如:某個Activity有一個在後臺執行的執行緒,用於從網路下載資料,則該Activity可以在onCreate()中建立執行緒,在onDestory()中停止執行緒。
2.可見的生命週期
從onStart()開始到onStop()結束。在這段時間,可以看到Activity在螢幕上,儘管有可能不在前臺,不能和使用者互動。在這兩個介面之間,需要保持顯示給使用者的UI資料和資源等,例如:可以在onStart中註冊一個IntentReceiver來監聽資料變化導致UI的變動,當不再需要顯示時候,可以在onStop()中登出它。onStart(),onStop()都可以被多次呼叫,因為Activity隨時可以在可見和隱藏之間轉換。
3.前臺的生命週期
從onResume()開始到onPause()結束。在這段時間裡,該Activity處於所有 Activity的最前面,和使用者進行互動。Activity可以經常性地在resumed和paused狀態之間切換,例如:當裝置準備休眠時,當一個 Activity處理結果被分發時,當一個新的Intent被分發時。所以在這些介面方法中的程式碼應該屬於非常輕量級的。