四種LaunchMode及其使用場景

 

四種LaunchMode及其使用場景瀏覽器

standard 模式it

這是默認模式,每次激活Activity時都會建立Activity實例,並放入當前任務棧中。使用場景:大多數Activity。vi

singleTop 模式閱讀

singleTop模式的Activity, 僅當該Activity已經在Task的頂部了, 纔會複用. 複用時onPause, 而後onNewIntent喚起, 走onResume流程. 不然都要建立新的實例, 放進Task中。使用場景如新聞類或者閱讀類App的內容頁面。界面

singleTask 模式實例

若是在棧中已經有該Activity的實例,就重用該實例(會調用實例的onPause() -- onNewIntent() --onResume())。重用時,會讓該實例回到棧頂,所以在它上面的實例將會被移出棧。若是棧中不存在該實例,將會建立新的實例放入棧中。使用場景如瀏覽器的主界面。無論從多少個應用啓動瀏覽器,只會啓動主界面一次,其他狀況都會走onNewIntent,而且會清空主界面上面的其餘頁面。

singleInstance 模式

在一個新棧中建立該Activity的實例,並讓多個應用共享該棧中的該Activity實例。一旦該模式的Activity實例已經存在於某個棧中,任何應用再激活該Activity時都會重用該棧中的實例( 會調用實例的 onNewIntent() )。其效果至關於多個應用共享一個應用,無論誰激活該 Activity 都會進入同一個應用中。使用場景如鬧鈴提醒,將鬧鈴提醒與鬧鈴設置分離。singleInstance不要用於中間頁面,若是用於中間頁面,跳轉會有問題,好比:A -> B (singleInstance) -> C,徹底退出後,在此啓動,首先打開的是B。

相關文章
相關標籤/搜索