Android基礎回顧--Activity

一門技術的基礎知識是掌握一門技術的起點和支撐。許多基礎知識需要我們不斷的回顧。

Activity是Android的四大組件之一,也是我們最長用到的組件。熟練的使用的Activity是我們Android的最基本功。使用Activity時最常涉及到的知識有

Activity生命周期 (7個狀態(tài)方法、幾種狀態(tài)、數(shù)據(jù)緩存)

Activity啟動模式

Activity使用技巧

(一)Activity的生命周期

1、一個完整的周期路線 : onCreate() -> onStart()-> onResume() -> onPause() -> onStop() -> onDestroy() ? ,這是一個完整無特殊情況的生命周期方法調用,沒有涉及到onRestart()方法。

具體方法邏輯可以看下面的生命周期圖(自己總結)

要理解這些方法的調用次序和影響就要理解Activity的幾種狀態(tài):不可見、可見不可操作、可見可操作

當我們啟動一個Activity,直到Activity顯示出來,后臺日志打印如下

當Activity跳轉到另一個Activity時

可以看到當在一個Activity中啟動另一個Activity時,先是執(zhí)行A的onPause() 然后時B的onCreate() ->onStart() ->onResume 最后?執(zhí)行A的onStop()。

這個次序非常清晰的對應到生命周期的狀態(tài)和方法的對應關系。

現(xiàn)在看一下一個完整的兩個Activity交互的方法調用流程A B(A啟動B,B退回到A)

可以看到在A和B的交互中,A或者B的生命周期方法并不是連貫執(zhí)行的,這個可以和Activity結合起來。

A啟動B的一個完整流程:A onPause() (執(zhí)行后A可見但不可操作)->B onCreate() ->B onStart() -> B onResume() (B可見可操作) ->A onStop(A不可見)

B退回到A的一個完整流程:B onPause() (執(zhí)行后B可見但不可操作)->A onRestart() ->A onStart() -> A onResume() (A可見可操作) ->B onStop(B不可見) -> B onDestroy()

介紹:A 啟動到B的時候,先是A失去焦點(可見不可操作)然后開始B的啟動流程,當B達到可見可操作的時候再執(zhí)行A的onStop將A變?yōu)椴灰娨膊豢刹僮?。但不會?zhí)行A的onDestroy

Activity的棧,Android專門有存放Activity的棧,目前我們看到的Activity在棧頂,當新啟動一個Activity就會繼續(xù)進入到棧頂,而回退,則是將棧頂?shù)腁ctivity退出,回到下一個Activity。

Activity依然在棧內時,不會執(zhí)行onDestroy

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容