Activity

一:Android Activity 生命周期

正常:

1. onCreate? :? 初始化工作(setContentView? 加載資源,數(shù)據(jù))(類似iOS的loadView)。

2. onStart? :? Activity? 已經(jīng)可見,但是不能交互(看不到),再后臺(類似iOS的ViewDidLoad)。

3. onRestart? :? 重新啟動(不可見? -> 可見) (用戶行為導(dǎo)致的? (類似iOS的ViewWillAppear,但是第一次不會調(diào)用)。

4. onResume :? Activity? 已經(jīng)可見,可以交互(看的見),顯示前臺(類似iOS的ViewDidAppear)。

5. onPause :? Activity 正在停止,不能做耗時操作(影響新的Activity顯示)(類似iOS的ViewWillDisAppear),

6. onStop? :? Activity? 即將停止,? 不能做耗時操作(ViewDidDisAppear)。

7. onDestroy:? Activity 即將銷毀(釋放資源)(dealloc)。

注意

case1 :第一次啟動: onCreate -》onStart -》onResume。

case2 :打開新的Activity或者切回桌面 onPause -》onStop。 (如果Activity 為透明 onStop 不會調(diào)用)。

case3 :回到原來的Activity? onRestart -》onStart? -》onResume。

case4 :點擊back onPause -》onStop -》onDestroy

case5 :onStart ,onStop? 從可見角度區(qū)分,

case6 :onResume, onPause? 從是否前臺角度區(qū)分,

case7 :A? -》B ,A 的onPause 要比 B 的onResume 先執(zhí)行。

Activity 啟動

Instrumenttation? +? ActivityThread? +? ActivityMangerService(AWS)

啟動請求 -》 Intrumenttation? -》Binder? -》AWS (維護(hù)著ActivityStack ,負(fù)責(zé)棧內(nèi)的狀態(tài)同步,ActivityThread? 狀態(tài)同步,完成生命周期方法)。

異常:

1.? 系統(tǒng)配置發(fā)生改變導(dǎo)致Activity 被殺死。(橫豎屏切換)

onPause -》onStop -》onDestroy? -》 onSaveInstanceState(保存當(dāng)前activity的Bundle對象) -》onRestoreInstanceState &&? onCreate (判斷是否被重建,onRestoreInstanceState 在onCreate之后)

保存數(shù)據(jù)流程

? onSaveInstanceState -》Window? -》頂級容器保存數(shù)據(jù) -》通知子元素保存數(shù)據(jù)。

2.? 資源不足導(dǎo)致低優(yōu)先級Activity 被殺死。

高:? 前臺Activity - 正在和用戶交互的Activity? 優(yōu)先級最高。

中:? 可見非前臺Activity(彈出一個對話框)。

低:? 已經(jīng)被暫停的Activity(執(zhí)行了onStop)。

3? 不想被創(chuàng)建?

? ? android:configChanges =? "orientation"

二 :Android? Activity LauchMode? 啟動模式

1? 啟動模式

1。 standard? 標(biāo)準(zhǔn)模式 FLAG _ACTIVITY_NEW_TASK? ABCDD

2。 singleTop? 位于棧頂? Activity 不會從新創(chuàng)建 并且調(diào)用(onNewIntent)ABCD

3。 singleTask? 單例模式? 調(diào)用(onNewIntent)? ABCD ->ACDB

4。? singleInstance? 單例模式? 只能獨立位于一個新的任務(wù)棧? 不創(chuàng)建新的。除非任務(wù)棧被銷毀

2? Activity? Flag

singleTask? ->? FLAG_ACTIVITY_NEW_TASK

singleTop? ->? FLAG_ACTIVITY_SINGLE_TOP

FLAG_ACTIVITY_CLEAR_TOP? 當(dāng)前ACTIVITY? 上面都彈出(standard) 拿出彈出(singleTask)

3? 隱式啟動 action category data 完全匹配

action 區(qū)分大小寫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【Android Activity】 什么是 Activity? 四大組件之一,通常一個用戶交互界面對應(yīng)一個 ac...
    Rtia閱讀 3,926評論 3 18
  • Android四大組件之ActivityAndroid四大組件之ServiceAndroid四大組件之Broadc...
    MonkeyLqj閱讀 1,347評論 0 7
  • Activity的生命周期 Activity的創(chuàng)建和銷毀onCreate(): 執(zhí)行Activity某些基本設(shè)置的...
    Showdy閱讀 998評論 0 1
  • Activity 在應(yīng)用中的表現(xiàn)主要是顯示各種UI元素,并且為這些UI元素設(shè)置時間處理函數(shù),使得用用戶可以與這些U...
    sssssss_閱讀 768評論 0 1
  • 清晨 我跑進(jìn)夢里 在一抹新綠上跳舞 鳥兒瞥了我一眼 又自顧自唱它的歌 我轉(zhuǎn)過頭 傻瓜似的笑了
    危險游戲閱讀 175評論 0 1

友情鏈接更多精彩內(nèi)容