Android:如何完全清除FragmentManager

时间:2016-05-12 14:10:13

标签: android android-fragments fragmentmanager

在我的活动A中,我添加了一些片段(标准案例)。我已经在我的Android手机设置上查看了“不要保留活动”#34;模拟最差的应用程序行为。

所以,当这个Activity A重新启动时,我在onCreate()方法中执行此操作,以清除我之前添加的所有片段:

FragmentManager fm = getSupportFragmentManager();
    List<Fragment> al = fm.getFragments();
    if (al != null) {
        for (Fragment frag : al) {
            if (frag != null) {
                getSupportFragmentManager().beginTransaction().remove(frag).commit();
                fm.popBackStack();
            }
        }
    }

但不幸的是,我可以在日志中看到这些信息:

Successful to getNewsFeedInteractionsList() #2
Successful to getNewsFeedInteractionsList() #2
Successful to getNewsFeedUserList() #Suivis
Successful to getNewsFeedUserList() #Populaire
Successful to getNewsFeedUserList() #Populaire
Successful to getNewsFeedUserList() #Suivis

你可以看到,所有这些片段都出现了两次......

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

添加片段时,您可以设置标签。基于这些标签处理onCreate中的重复添加。 您还可以使用savedBundle实例进行空检查