从内存中删除后返回应用程序时如何处理Activity和Fragment?

时间:2015-03-03 19:12:38

标签: android android-fragments

我遇到了将两个相同片段的实例附加到活动的问题。我在onCreate上有ActivityA附加FragmentA。当我在使用此活动时离开应用程序,浏览其他应用程序一段时间,然后返回应用程序,我看到系统正在尝试重新创建活动。我的日志显示片段运行TWICE的代码。我的猜测是已经附加了Fragment但是Activity会尝试创建FragmentA的新实例。

当系统从内存中删除它时,Activity / Fragment会发生什么,处理此问题的最佳方法是什么?任何链接都会有所帮助。

如果需要,将提供代码。

1 个答案:

答案 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();
    }
}

通过这样做,您基本上是说如果找不到先前的状态,则添加您的片段。否则,您将自动返回已存在的片段。