更多Activities討論:http://www.eyeandroid.com/forum.php?mod=forumdisplay&fid=2&filter=typeid&typeid=42
我們在開發項目的過程中,會涉及到該應用中多個Activity組件之間的跳轉,或者夾帶其它應用的可複用的Activity。例如我們可能希望跳轉到原來某個Activity執行個體,而不是產生大量重複的 Activity。這樣就需要我們為 Activity 配置特定的載入模式,而不是使用預設的載入模式。
Activity 有四種載入模式
[1] standard 模式
這是預設模式,每次啟用Activity時都會建立Activity執行個體,並放入任務棧中。
[2] singleTop 模式
如果在任務的棧頂正好存在該Activity的執行個體,就重用該執行個體( 會調用執行個體的 onNewIntent() ),否則就會建立新的執行個體並放入棧頂,即使棧中已經存在該Activity的執行個體,只要不在棧頂,都會建立新的執行個體。
[3] singleTask 模式
如果在棧中已經有該Activity的執行個體,就重用該執行個體(會調用執行個體的 onNewIntent() )。重用時,會讓該執行個體回到棧頂,因此在它上面的執行個體將會被移出棧。如果棧中不存在該執行個體,將會建立新的執行個體放入棧中。
[4] singleInstance 模式
在一個新棧中建立該Activity的執行個體,並讓多個應用共用該棧中的該Activity執行個體。一旦該模式的Activity執行個體已經存在於某個棧中,任何應用再啟用該Activity時都會重用該棧中的執行個體( 會調用執行個體的 onNewIntent() )。其效果相當於多個應用共用一個應用,不管誰啟用該 Activity 都會進入同一個應用中。
設定啟動模式的位置在 AndroidManifest.xml 檔案中 Activity 元素的 android:launchMode 屬性。