我想应该很简单
fragmentManager.beginTransaction().replace(R.id.container, otherFragment).commit();
应该那样做,但的确不是。
即使是fragmentManager.beginTransaction().remove(fragment);
也杀不死它。
其他片段加载,但在我试图杀死的片段中有一个SensorEventListener,它在片段被替换后仍继续React。我可以听到声音和其他东西。
当然,我可以创建一个布尔值并切换它,但在我看来,应该有另一种方法来简单地销毁这个对象。
这是我如何初始化片段:
public static BaseGameFragment newInstance(int mode) {
BaseGameFragment.mode = mode;
BaseGameFragment fragment = new BaseGameFragment();
return fragment;
}
我也尝试调用onDestroy();
,但它不能停止传感器的React,因此,不能停止fragment中的所有其他进程。
2条答案
按热度按时间s2j5cfk01#
尝试使用标记从事务中删除片段。
5sxhfpxr2#
这是一个老问题,但为了完整性,正确的方法是在片段内创建一个方法来停止传感器;请在移除片段之前叫用这个方法。