標籤:
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生命週期及啟動模式