天天看點

Android四大元件學習(一)---Activity

       在學習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 暫時先列這麼多吧,後續有新的了解再更新。

繼續閱讀