標籤:des android c style blog a
--by CY[[email protected]]
1.protected void onCreate(Bundle savedInstanceState) { throw new RuntimeException("Stub!"); }
當建立一個Activity時,系統會自動調用onCreate方法來完成建立工作.該建立工作包括布局,監聽器的綁定等.
首先說一下Bundle 這個類,Bundle是一個索引值對,跟Map類似,兩個Activity之間的通訊可以用Bundle類來實現.
Bundle savedInstanceState對象則是儲存程式上一次關閉(凍結)時的狀態,也可以通過重寫onFreeze方法來儲存凍結前的狀態.當程式啟動(Activity 重新初始化時),會再次調用onCreate方法,從savedInstanceState中擷取前一次的凍結狀態,可以通過Bundle來將這一個Activity 中的內容傳到下一個Activity 中.
當一個Activity 結束前需要儲存狀態,就儲存在savedInstanceState中,當其它Activity建立時,就能從中獲得資料.
2.protected void onSaveInstanceState(Bundle outState) { throw new RuntimeException("Stub!"); }
Android中的Activity通過onSaveInstanceState()方法儲存Activity的狀態,在onCreate或者onRestoreInstanceState方法中哦功能恢複,如果是通過onRestart方法運行,則只會執行onSaveInstanceState方法.
圖1-1是android Activity的生命週期.
圖1-1
3. protected void onRestoreInstanceState(Bundle savedInstanceState) { throw new RuntimeException("Stub!"); }
解釋見第2條
4.protected void onRestart() { throw new RuntimeException("Stub!"); }
解釋見第2條
5. protected void onStart() { throw new RuntimeException("Stub!"); }
下面來結合來說一下onCreate, onStart, onResume, onPause, onRestart, onStop, onDestroy方法.當啟動一個Activity時,系統會依次調用onCreate, onStart, onResume方法.
從activity1啟動activity2時,會先調用activity1的onPause方法,然後再調用activity2的onCreate, onStart, OnResume方法,若要完全覆蓋activity1,則最後再調用activity1的onStop方法.
onCreate方法:
- Activity第一次建立時,被系統調用
- 作用是設定布局檔案,綁定監聽器
onStart方法:
onResume方法:
onPause方法:
- 當新的Activity遮住當前Activity時,該方法會儲存當前Activity中的資料
onRestart方法:
- 一個Activity沒有被銷毀時(調用onDestroy方法),再次使用該Activity時會調用onRestart方法
onStop方法:
- 噹噹前Activity完全不可見時,系統會調用該方法
onDestroy方法: