Android基礎回顧--Activity

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

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

Activity生命週期 (7個狀態方法、幾種狀態、數據緩存)

Activity啓動模式

Activity使用技巧

(一)Activity的生命週期

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

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


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


當我們啓動一個Activity,直到Activity顯示出來,後臺日誌打印如下


當Activity跳轉到另一個Activity時


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

這個次序非常清晰的對應到生命週期的狀態和方法的對應關係。

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


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

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

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

介紹:A 啓動到B的時候,先是A失去焦點(可見不可操作)然後開始B的啓動流程,當B達到可見可操作的時候再執行A的onStop將A變爲不見也不可操作。但不會執行A的onDestroy

Activity的棧,Android專門有存放Activity的棧,目前我們看到的Activity在棧頂,當新啓動一個Activity就會繼續進入到棧頂,而回退,則是將棧頂的Activity退出,回到下一個Activity。

Activity依然在棧內時,不會執行onDestroy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章