【发布时间】:2015-07-17 02:12:28
【问题描述】:
“如果一个活动被暂停或停止,系统可以通过要求它完成或简单地终止它的进程来从内存中删除该活动。”。当用户返回 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()
【问题讨论】:
-
根据我的理解,你应该使用第一个。片段可能已经在后堆栈上。在这种情况下,当您回到托管活动时,无需获取片段的新实例,堆栈上的实例可以弹出显示。