onNewIntent

Activity的啟動(dòng)模式分為四種:

1. Standard模式:默認(rèn)啟動(dòng)模式,這種模式下,Activity可以有多個(gè)實(shí)例,每次啟動(dòng)Activity,不管任務(wù)棧中是否已經(jīng)有該Activity的實(shí)例,系統(tǒng)都會(huì)創(chuàng)建一個(gè)新的Activity實(shí)例。
2. SingleTop模式:如果啟動(dòng)Activity時(shí),該Activity正位于棧頂,則不會(huì)創(chuàng)建新的Activity實(shí)例,否則,仍會(huì)創(chuàng)建新的實(shí)例。
3. SingleTask模式:同一個(gè)任務(wù)棧只能有一個(gè)Activity實(shí)例。
4. SingleInstance模式:整個(gè)系統(tǒng)只能有一個(gè)Activity實(shí)例,啟動(dòng)一個(gè)singleInstance Activity時(shí),系統(tǒng)會(huì)創(chuàng)建一個(gè)新的任務(wù)棧,并且該任務(wù)棧只有它一個(gè)Activity。

onNewIntent的觸發(fā)時(shí)機(jī):

當(dāng)啟動(dòng)模式為SingleTop時(shí),Activity實(shí)例當(dāng)前在棧頂時(shí),此時(shí)會(huì)調(diào)用onNewIntent方法,調(diào)用順序?yàn)椋簅nCreate—>onStart—>onResume—>onPause—>onNewIntent—>onResume。
當(dāng)啟動(dòng)模式為SingleInstance和singleTask時(shí),若Activity已在任務(wù)棧時(shí),就會(huì)調(diào)用onNewIntent方法,調(diào)用順序?yàn)椋簅nPause—>onNewIntent—>onRestart—>onStart—>onResume。

所以,只有SingleTop(位于棧頂),SingleTask和SingleInstance(且棧中已存在實(shí)例),再次啟動(dòng)它們時(shí)才會(huì)調(diào)用,僅從后臺(tái)切換到前臺(tái)而不再次啟動(dòng)的情況下不會(huì)觸發(fā)onNewIntent。

https://blog.csdn.net/hcgeng/article/details/89084800
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容