activity正常的生命周期? ?
1、啟動 :onCreate--onStart--onResume??
2语婴、切換到后臺:onPause--onStop(如果新的activity采用的是透明主題膏燕,則當(dāng)前activity不會執(zhí)行onStop)
3踱承、切換回前臺:onRestart--onStart--onResume
4讹俊、 退出activity:onPause--onStop--onDestroy
5泡挺、onStart開始到onStop之前,activity可見助析。onResume開始到onPause之前犀被,activity用戶可交互
6、切換activity時外冀,當(dāng)前activity執(zhí)行了onPause之后寡键,新的activity才會啟動,所以在onPause中不能執(zhí)行耗時操作
7锥惋、onStop也不可以執(zhí)行太耗時昌腰,資源的回收和釋放可以放在onDestroy中
在異常情況下
activity在執(zhí)行onStop之前,會執(zhí)行onSaveInstanceState來保存數(shù)據(jù)(activity委托window膀跌,window委托頂級父容器viewgroup遭商,viewgroup通知子元素保存各自的狀態(tài)和數(shù)據(jù)),在onStart之前調(diào)用onRestoreInstanceState捅伤,恢復(fù)數(shù)據(jù)
系統(tǒng)只有再異常狀態(tài)下才會調(diào)用onSaveInstanceState和onRestoreInstanceState劫流,其他情況不會調(diào)用
資源文件不足導(dǎo)致低優(yōu)先級的activity被殺死
三種activity優(yōu)先級:前臺---可見非前臺---后臺 優(yōu)先級從高到底
如果一個進(jìn)程沒有四個組件,很快會被系統(tǒng)殺死丛忆,所以后臺工作最好放在service里
android:configChanges="orientation",在manifest中制定了configChanges祠汇,在系統(tǒng)重配置變化后,不會重新穿創(chuàng)建activity熄诡,也不會執(zhí)行onSaveInstanceState和onRestoreInstanceState方法可很,而是調(diào)用onConfigurationChanged方法