簡要說明Activity的啟動模式

standard:默認模式

當通過這種模式來啟動Activity時,Activity會創建一個新的實例并加入當前Task棧中。如多次使用該模式啟動同一個Activity,那么Task棧中會有多個Activity實例。

singleTop:Task棧頂單例模式

當通過這種模式來啟動Activity時,如果發現有對應的Activity實例正位于棧頂,則重復利用,不再生成新的實例。
如果在對應的Task棧中有對應的Activity實例,但不在Task棧頂,那么就會生成一個新的Activity實例,并置于ask棧頂。

singleTask: Task內單例模式

當通過這種模式來啟動Activity時,

*1.如果將要啟動的Activity不存在,那么系統將會創建該實例,并將其加入Task棧頂

*2.如果將要啟動的Activity已存在,且存在棧頂,那么此時不會創建新的實例,Task棧也不會改變。

*3.如果將要啟動的Activity存在但是沒有位于Task棧頂,那么將會把Task棧中置于該Activity的以上的其他實例全部從Task棧中移除,從而使得該Activity位于Task棧頂。

singleInstance: 全局單例模式

當通過這種模式來啟動Activity時,無論從哪個Task中啟動目標Activity,只會創建一個目標Activity實例且會用一個全新的Task棧來裝載該Activity實例.

*1.如果將要啟動的Activity不存在,那么會先創建一個新的Task棧,再創建一個該Activity的實例,并置于Task棧頂。

*2.如果將要啟動的Activity已存在,那么無論它位于哪個應用程序,哪個Task棧中,都會把該Activity所在的Task棧切換到前臺,從而使該Activity顯示出來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容