如何在活动的 onSaveInstanceState() 之后杀死所有打开的片段
Posted
技术标签:
【中文标题】如何在活动的 onSaveInstanceState() 之后杀死所有打开的片段【英文标题】:How to kill all open fragments after onSaveInstanceState() of activity 【发布时间】:2021-05-25 01:23:42 【问题描述】:我在我的应用程序中使用一个活动多片段架构。我知道当系统在后台杀死应用程序时,如果应用程序被带到前台,那么活动和所有打开的片段都会被重新创建。当片段被重新创建时,我在某些地方收到空指针异常和空值调用 api。
现在我只想在活动内存被清除时杀死所有片段。并从初始屏幕重新启动整个应用程序流程。如果我尝试删除片段并提交,那么我将无法这样做,因为它是异步的,并且在 onSaveInstanceState() 之后无法完成。如果我尝试执行 conmitAllowingStateLoss 那么它不会清除所有片段它只是停止片段重新创建。
如何清除 onSaveInstanceState() 调用中的所有片段?
【问题讨论】:
【参考方案1】:有几种不同的方法可以做到这一点,具体取决于您的具体需求。最简单的方法是将其添加到应用的根 Activity
的 <activity>
声明中(具有 ACTION=MAIN 和 CATEGORY=LAUNCHER 的应用):
android:clearTaskOnLaunch="true"
【讨论】:
以上是关于如何在活动的 onSaveInstanceState() 之后杀死所有打开的片段的主要内容,如果未能解决你的问题,请参考以下文章