簡要說明Activity的啟動模式

standard:默認模式

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

singleTop:Task棧頂單例模式

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

singleTask: Task內單例模式

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

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

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

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

singleInstance: 全局單例模式

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

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容