1

我正在为 Fragment 泄漏而苦苦挣扎,但我不知道如何处理它:

我有一个带有两个按钮的 FragmentActivity(我正在使用支持 lib v4):前进和后退。Forth 按钮将片段添加到具有长动画的 backstack 中,并且 back 按钮从 backstack 中弹出片段。

第四按钮点击监听器的代码:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.own_slide_in_left, R.anim.own_slide_out_right, R.anim.own_slide_in_left, R.anim.own_slide_out_right);
transaction.add(R.id.fragment_holder, new FirstFragment());
transaction.addToBackStack(null);
transaction.commit();

对于后退按钮单击侦听器:

getSupportFragmentManager().popBackStackImmediate();

当我在动画进行时按下后退按钮并旋转设备,然后在视觉上旋转后一切似乎都很好,但是之前的片段被泄露了。我可以通过在例如 Fragment 的 ctor 或 onSaveInstanceState() 中设置断点来判断。当它不应该时,它会在每次旋转时出现。

我究竟做错了什么?

编辑:这个问题仍然存在使用原生片段,Android 4.0.3

4

0 回答 0