我遇到了将两个相同片段的实例附加到活动的问题。我在onCreate
上有ActivityA附加FragmentA。当我在使用此活动时离开应用程序,浏览其他应用程序一段时间,然后返回应用程序,我看到系统正在尝试重新创建活动。我的日志显示片段运行TWICE的代码。我的猜测是已经附加了Fragment但是Activity会尝试创建FragmentA的新实例。
当系统从内存中删除它时,Activity / Fragment会发生什么,处理此问题的最佳方法是什么?任何链接都会有所帮助。
如果需要,将提供代码。
答案 0 :(得分:1)
处理此问题的最佳方法是检查onCreate()方法,如果您的活动是否从之前的状态重新创建。我假设您在活动的onCreate()方法中添加了片段。你可以这样做:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (savedInstanceState == null)
{
// Add the fragment here to your activity
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content, new YourFragment());
ft.commit();
}
}
通过这样做,您基本上是说如果找不到先前的状态,则添加您的片段。否则,您将自动返回已存在的片段。