【发布时间】:2017-03-15 05:22:22
【问题描述】:
我有两个片段一个列表和一个细节片段。在列表项上单击我隐藏列表片段并在后按详细片段上添加详细片段自动弹出我只是调用 super.onBackPressed() 但问题是它创建了如此多的详细片段引用导致内存泄漏
以下是我的代码
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.hide(this);
ft.add(containerId, detailFragment, "detail");
ft.addToBackStack("detail");
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
当用户按下详细信息片段上的后退按钮时,我不想查看重新创建的视图,这就是我使用上述方法的原因。当我按下后退按钮 recylerview 滚动位置和其他数据时,我也不必保存当前实现
我的活动只有以下代码,它会膨胀列表片段
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.FragmentContainer1, ListFragment.newInstance(), TAG).commit();
}
【问题讨论】:
-
请发布完整的活动代码。
-
it is creating so many references of detail fragments resulting is memory leaks你对此有多确定?您是从哪里看到这些泄漏的? -
添加了活动代码和内存分配。查看 DealFragment 的计数
-
你只是在添加片段... add add add add... 试试
replace;) -
正确的方法应该是什么。
标签: android android-fragments memory-leaks fragment android-support-library