標籤:
1.返回棧概念
2.生命週期
1. onCreate()
這個方法你已經看到過很多次了,每個活動中我們都重寫了這個方法,它會在活動 第一次被建立的時候調用。你應該在這個方法中完成活動的初始化操作,比如說載入布 局、綁定事件等。
2.onStart()
這個方法在活動由不可見變為可見的時候調用。
3.onResume()
這個方法在活動準備好和使用者進行互動的時候調用。此時的活動一定位於返回棧的棧頂,並且處於運行狀態。
4. onPause()
這個方法在系統準備去啟動或者恢複另一個活動的時候調用。我們通常會在這個方 法中將一些消耗 CPU 的資源釋放掉,以及儲存一些關鍵資料,但這個方法的執行速度 一定要快,不然會影響到新的棧頂活動的使用。
5. onStop()
這個方法在活動完全不可見的時候調用。它和 onPause()方法的主要區別在於,如 果啟動的新活動是一個對話方塊式的活動,那麼 onPause()方法會得到執行,而 onStop() 方法並不會執行。
-
onDestroy()
這個方法在活動被銷毀之前調用,之後活動的狀態將變為銷毀狀態。
-
onRestart()
這個方法在活動由停止狀態變為運行狀態之前調用,也就是活動被重新啟動了。
3.活動狀態
每個活動在其生命週期中最多可能會有四種狀態。
1. 運行狀態
當Activity在前台顯示的時候,Activity處於active狀態或者running狀態2.paused當一個Activity失去焦點仍然可見時,該Activity處於暫停狀態(那意味著一個新的不是全屏的或者透明的Activity在這個Activity前面並獲得了焦點。)3.stopped如果一個Activity被另一個Activity完全擋住,則進入停止狀態。4.Shutdown
當一個活動從返回棧中移除後就變成了銷毀狀態。系統會最傾向於回收處於這種狀 態的活動,從而保證手機的記憶體充足。
4.活動的啟動模式
standardsingleTopsingleTasksingleInstance
可以在 AndroidManifest.xml 中通過給<activity>標籤指定 android:launchMode 屬性來選擇啟動模式
standard 是活動預設的啟動模式,在不進行顯式指定的情況下,所有活動都會自動使用 這種啟動模式。
在 standard 模式(即預設情 況)下,每當啟動一個新的活動,它就會在返回棧中入棧,並處於棧頂的位置。對於使用 standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立 該活動的一個新的執行個體。
singleTop
singleTop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直接使用 它,不會再建立新的活動執行個體。
singleTask
singleTask,每次啟動該活動時系統首先 會在返回棧中檢查是否存在該活動的執行個體,如果發現已經存在則直接使用該執行個體,並把在這 個活動之上的所有活動統統出棧,如果沒有發現就會建立一個新的活動執行個體。
singleInstance
singleInstance 模式的活動會啟用一 個新的返回棧來管理這個活動
Android03-Activity生命週期及啟動模式