記一次SingleTask的坑:App從后臺切回前臺后都會重新回到首頁,并銷毀其他頁面

前情提要:

按正常的App開發(fā)設(shè)計,每個App都會有啟動頁(也就是閃屏頁)和首頁(通常叫MainActivity),而這時候首頁的啟動模式大多數(shù)人會在 ==AndroidManifest==設(shè)置 ==android:launchMode="singleTask"==

可是最近入職的新公司做的App沒有啟動頁,只有首頁,而我按照慣例給首頁設(shè)置了singleTask的啟動模式,然后App就"炸"了!

異常描述

這個"炸"不是說App崩潰了,而是當我們啟動App后,不管我們是從首頁跳轉(zhuǎn)到A頁面,或者是從首頁跳轉(zhuǎn)到B頁面再跳轉(zhuǎn)到C頁面,只要我們點擊Home鍵返回桌面,再點擊桌面圖標把App從后臺切回前臺,系統(tǒng)都會幫我們啟動一次首頁,沒錯,就是啟動一次首頁

而基于首頁的launchMode是SingleTask,在重啟首頁之前Activity棧中處于首頁之上的所有Activity都會被全部銷毀,重新回到首頁
(如果對啟動模式不了解的,可以看這篇文章[Android:圖解四種啟動模式 及 實際應(yīng)用場景解說]

沒想到啊,我一直以為是業(yè)務(wù)代碼中有什么地方出問題重新啟動首頁,后來通過斷點排除了所有可能性,最后對比以前做過的軟件,才想到了可能是因為缺少了啟動頁導致的問題。

解決方式

使用singleTask的前提:

  1. 很多時候是為了保持首頁的唯一性
  2. 為了從子頁面跳回首頁的之后不必去寫銷毀其他子頁面的代碼

解決方法:

目前只能通過代碼去銷毀其他子頁面后返回首頁了

問題的原因

還不知道為什么啟動頁如果設(shè)置singleTask會出現(xiàn)這種問題,如果有大神知道的話,麻煩指導一下,謝謝!

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

相關(guān)閱讀更多精彩內(nèi)容

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