Android 12 Ondestroy不執(zhí)行

適配Android12時,偶然發(fā)現(xiàn)按返回鍵時,應(yīng)用不會執(zhí)行ondestroy方法,后來找了好久,終于找到問題所在了。

此問題為Android12的行為變更引起的,需要用戶去進(jìn)行適配。

按下“返回”按鈕時,不再結(jié)束根啟動器 activity
Android 12 更改了在按下“返回”按鈕時系統(tǒng)對為其任務(wù)根的啟動器 activity 的默認(rèn)處理方式。在以前的版本中,系統(tǒng)會在按下“返回”按鈕時結(jié)束這些 activity。在 Android 12 中,現(xiàn)在系統(tǒng)會將 activity 及其任務(wù)移到后臺,而不是結(jié)束 activity。當(dāng)使用主屏幕按鈕或手勢從應(yīng)用中導(dǎo)航出應(yīng)用時,新行為與當(dāng)前行為一致。

對于大多數(shù)應(yīng)用而言,此變更意味著使用“返回”按鈕退出應(yīng)用的用戶可以更快地從[溫狀態(tài)]恢復(fù)應(yīng)用,而不必從[冷狀態(tài)]完全重啟應(yīng)用。

建議您針對此變更測試您的應(yīng)用。如果您的應(yīng)用目前替換 [onBackPressed()]來處理返回導(dǎo)航并完成 Activity,請更新您的實現(xiàn)來調(diào)用 super.onBackPressed() 而不是finish Activity。調(diào)用 super.onBackPressed() 可在適當(dāng)時將 activity 及其任務(wù)移至后臺,并可為不同應(yīng)用中的用戶提供更一致的導(dǎo)航體驗。

另請注意,通常,我們建議您使用 AndroidX Activity API [提供自定義返回導(dǎo)航],而不是替換 onBackPressed()。如果沒有組件攔截系統(tǒng)按下“返回”按鈕,AndroidX Activity API 會自動遵循適當(dāng)?shù)南到y(tǒng)行為。

更多描述,可參考Google官網(wǎng)描述:
https://developer.android.google.cn/about/versions/12/behavior-changes-all#activity-lifecycle

?著作權(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)容