gpt4 book ai didi

android - 系统杀死一个应用程序后, fragment 会发生什么?

转载 作者:行者123 更新时间:2023-11-29 20:35:11 25 4
gpt4 key购买 nike

“如果一个 Activity 被暂停或停止,系统可以通过要求它完成或简单地杀死它的进程来从内存中删除该 Activity 。”。当用户返回到 Activity 时,它会使用一个包恢复它的状态。

我的问题是:

在oncreate中这样做重要吗:

if(savedinstance != null)
{
fragement = fm.findFragmentByTag("tag");
}
else
{
fragment = new Fragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.webViewFrame,fragment,"tag");
ft.commit()
}

不仅仅是这个:

    fragment = new Fragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.webViewFrame,fragment,"tag");
ft.commit()

最佳答案

如果您在 onSaveInstanceState() 中正确保存了您的 Activity 和 fragment 的状态,并且您希望您的 Activity 以它被杀死之前的状态重新创建,您应该使用第一个您发布的代码块。

FragmentManager 保存其状态,并在重新创建时恢复 Activity 被终止时它所持有的 fragment 。它使用 fragment 的保存状态引导他们完成构建生命周期事件:创建、创建 View 、开始、恢复。

我敢肯定,如果您尝试运行第二个代码块,您会在重新启动后发现 FragmentManager 中有您的 fragment 的两个实例——一个是在 Activity 结束时添加的先创建,重启后添加的。

为了使这一切正常工作,您必须小心地将 Activity 和 fragment 的状态保存在各自的 onSaveInstanceState() 方法中,然后保存在 onCreate() 中 测试 savedInstanceState,当它不为 null 时,使用 bundle 恢复您的 Activity/fragment 的状态。

这是 saving/restoring activity state 的指南.更多信息 here .

关于android - 系统杀死一个应用程序后, fragment 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31467426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com