生命周期Android 系統(tǒng)在Activity 生命周期中加入一些鉤子,我們可以在這些系統(tǒng)預留的鉤子中做一些事情。
例舉了 7 個常用的鉤子:
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()
簡要說明:
onCreate(Bundle savedInstanceState):創(chuàng)建activity時調(diào)用。設置在該方法中,還以Bundle中可以提出用于創(chuàng)建該 Activity 所需的信息。
onStart():activity變?yōu)樵谄聊簧蠈τ脩艨梢姇r,即獲得焦點時,會調(diào)用。
onResume():activity開始與用戶交互時調(diào)用(無論是啟動還是重新啟動一個活動,該方法總是被調(diào)用的)。
onPause():activity被暫?;蚴栈豤pu和其他資源時調(diào)用,該方法用于保存活動狀態(tài)的。。
onStop():activity被停止并轉(zhuǎn)為不可見階段及后續(xù)的生命周期事件時,即失去焦點時調(diào)用。
onRestart():重新啟動activity時調(diào)用。該活動仍在棧中,而不是啟動新的活動。
onDestroy():activity被完全從系統(tǒng)內(nèi)存中移除時調(diào)用,該方法被調(diào)用可能是因為有人直接調(diào)用 finish()方法 或者系統(tǒng)決定停止該活動以釋放資源。
橫豎屏切換1 切換到橫屏
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
2 切換到豎屏,銷毀了兩次
onSaveInstanceState
onPause
onStop
onDestroyonCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume3 修改AndroidManifest.xml,把該Activity添加 android:configChanges="orientation",切橫屏,只銷毀一次。
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
4
再切回豎屏,發(fā)現(xiàn)不會再打印相同信息,但多打印了一行onConfigChangedonSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged
5 更改 android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",切橫屏,就只打印onConfigChanged
onConfigurationChanged
6 切回豎屏
onConfigurationChanged
onConfigurationChanged
總結:
1、不設置Activity的android:configChanges時,切屏會重新調(diào)用各個生命周期,切橫屏時會執(zhí)行一次,切豎屏時會執(zhí)行兩次
2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調(diào)用各個生命周期,切橫、豎屏時只會執(zhí)行一次
3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法
posted on 2011-09-16 10:32
lincode 閱讀(3369)
評論(1) 編輯 收藏 所屬分類:
android