隨筆 - 35  文章 - 21  trackbacks - 0
          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          生命周期
          Android 系統(tǒng)在Activity 生命周期中加入一些鉤子,我們可以在這些系統(tǒng)預(yù)留的鉤子中做一些事情。
          例舉了 7 個(gè)常用的鉤子:
          protected void onCreate(Bundle savedInstanceState)
          protected void onStart()
          protected void onResume()
          protected void onPause()
          protected void onStop()
          protected void onRestart()
          protected void onDestroy()

          簡(jiǎn)要說明:
          onCreate(Bundle savedInstanceState):創(chuàng)建activity時(shí)調(diào)用。設(shè)置在該方法中,還以Bundle中可以提出用于創(chuàng)建該 Activity 所需的信息。
          onStart():activity變?yōu)樵谄聊簧蠈?duì)用戶可見時(shí),即獲得焦點(diǎn)時(shí),會(huì)調(diào)用。
          onResume():activity開始與用戶交互時(shí)調(diào)用(無論是啟動(dòng)還是重新啟動(dòng)一個(gè)活動(dòng),該方法總是被調(diào)用的)。
          onPause():activity被暫?;蚴栈豤pu和其他資源時(shí)調(diào)用,該方法用于保存活動(dòng)狀態(tài)的。。
          onStop():activity被停止并轉(zhuǎn)為不可見階段及后續(xù)的生命周期事件時(shí),即失去焦點(diǎn)時(shí)調(diào)用。
          onRestart():重新啟動(dòng)activity時(shí)調(diào)用。該活動(dòng)仍在棧中,而不是啟動(dòng)新的活動(dòng)。
          onDestroy():activity被完全從系統(tǒng)內(nèi)存中移除時(shí)調(diào)用,該方法被調(diào)用可能是因?yàn)橛腥酥苯诱{(diào)用 finish()方法 或者系統(tǒng)決定停止該活動(dò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
          onResume

          3 修改AndroidManifest.xml,把該Activity添加 android:configChanges="orientation",切橫屏,只銷毀一次。

          onSaveInstanceState
          onPause
          onStop
          onDestroy
          onCreate
          onStart
          onRestoreInstanceState
          onResume

          再切回豎屏,發(fā)現(xiàn)不會(huì)再打印相同信息,但多打印了一行onConfigChanged

          onSaveInstanceState
          onPause
          onStop
          onDestroy
          onCreate
          onStart
          onRestoreInstanceState
          onResume
          onConfigurationChanged

          5 更改 android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",切橫屏,就只打印onConfigChanged

          onConfigurationChanged

          6 切回豎屏

          onConfigurationChanged
          onConfigurationChanged

          總結(jié):

          1、不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會(huì)執(zhí)行一次,切豎屏?xí)r會(huì)執(zhí)行兩次

          2、設(shè)置Activity的android:configChanges="orientation"時(shí),切屏還是會(huì)重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會(huì)執(zhí)行一次

          3、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時(shí),切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法





          posted on 2011-09-16 10:32 lincode 閱讀(3371) 評(píng)論(1)  編輯  收藏 所屬分類: android

          FeedBack:
          # re: [android] Activity 的生命周期 以及 橫屏豎屏切換時(shí) Activity 的狀態(tài)變化[未登錄] 2012-04-22 02:02 dong
          cool,正需要。沒想到居然有這種變化啊  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 黑龙江省| 富宁县| 招远市| 沙湾县| 朔州市| 永修县| 玉林市| 芦山县| 庆城县| 嘉义县| 乌恰县| 永顺县| 龙南县| 许昌市| 长丰县| 龙口市| 博乐市| 海安县| 班戈县| 肥西县| 屯门区| 西乌珠穆沁旗| 大丰市| 绥江县| 吉木乃县| 定南县| 信阳市| 江川县| 楚雄市| 兖州市| 遂溪县| 岗巴县| 彝良县| 万源市| 陕西省| 红安县| 阳朔县| 庐江县| 原平市| 河北区| 兴业县|