我在我的应用程序中使用 fragment ,我怀疑通过每次添加和删除 fragment ,删除 fragment 时是否收集了 fragment 垃圾?
这是我的代码:
在 onCreate() 中
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(detailFragmentID, new MyDetailFragment());
fragmentTransaction.add(fragmentID, new MyListFragmentt());
fragmentTransaction.commit();
在onRestart()中
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
Fragment previousFragment = getSupportFragmentManager().findFragmentById(detailFragmentID);
if (previousFragment != null) {
fragmentTransaction.remove(previousFragment);
}
fragmentTransaction.add(detailFragmentID, new MyDetailFragment());
fragmentTransaction.commitAllowingStateLoss();
在这里,当我去参加一些 Activity 并回来时,将调用 onRestart。
通过每次添加和删除 fragment , fragment 垃圾收集到这里了吗?
[正确格式化代码]
最佳答案
很难知道它是否经过了 GC。我认为您真正要问的是 fragment 是否被 标记 用于 GC(即稍后会得到 GC)。
检查这一点的最简单方法是在 Fragment 的 onDestroy()
方法中放置一个断点,然后查看是否会调用它。您可以确信,如果系统“销毁”您的 Fragment,它最终将获得 GC。
关于android - fragment 垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473916/