在學習Android開發的時候最早接觸到的元件就是Activity了,應用程式總是從主Activity開始運作,根據activity的生命周期,系統在主Activity中首先調用onCreate(Bundle savedInstanceState)方法,其中傳入的參數savedInstanceState儲存了一些關于這個activity執行個體的資訊,它經由系統或使用者調用onSaveInstanceState(Bundle outState)之後獲得,onSaveInstanceState(Bundle outState)常常需要override因為要儲存一些使用者資訊,至于何時調用在哪裡調用可以看看它的API講解。系統緊接着調用setContentView(int);其傳入的參數一般是布局檔案的ID。
本文并不是要詳細複述activity的知識,目的在于總結一些程式設計是需要注意和了解的知識點:
(1)一般情況下我們并不需要顯式地調用
finish()
或
finishActivity()
結束一個失去焦點的activity,當系統因為裝置資源不夠用時會自動結束它。主動的調用
finish()
或
finishActivity()很多時候會降低使用者體驗。
(2)當一個activity失去焦點後系統會首先調用
protectedvoid
onPause(),之後系統會随時因為資源緊張而完全結束這個activity,是以在這個activity中産生的一些需要儲存的使用者資料最好在
protectedvoid
onPause()中先進行儲存。
(3)使用者調用onSaveInstanceState(Bundle outState)儲存activity的相關資訊時在其内部調用
Bundle
類的putXxxx(key,value)以key-value pairs的形式儲存activity資料,擷取資料是在onCreate(Bundle savedInstanceState)中,調用
savedInstanceState.getXxxx(key)即可獲得。
(4)對于由Activity A 啟動 Acivity B時回調執行順序是先回調Activity A的
onPause() 方法,然後
按順序回調Activity B的
onCreate()
,onStart()
,
onResume()
方法,接着才可能
回調Activity A的
onStop() 方法.
關于activity 暫時先列這麼多吧,後續有新的了解再更新。