即使在禁用它之后,我仍然遇到OrientationEventListener
报告事件的问题。当OrientationEventListener被禁用时,onOrientationChanged()被调用
我正在使用标签布局中的三个片段,并且只有一个片段需要方向更改。当我离开这个片段时,我希望定向事件停止产生效果。
我的代码的生命周期部分如下:
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
if (orientationEventListener == null)
{
Log.w(LogTags.MOBILE_MONITOR, "Creating orientationListener in " + this.toString());
orientationEventListener = new OrientationEventListener(getActivity(), SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int angle) {
...Do work using getActivity()...
}
};
}
}
@Override
public void onResume() {
super.onResume();
orientationEventListener.enable();
}
@Override
public void onPause() {
super.onPause();
orientationEventListener.disable();
}
的问题,当我切换片段,同时移动设备进入。当我尝试拨打getActivity()
,OrientationEventListener
的onOrientationChanged(int angle)
时,该调用返回null,这意味着如果我尝试使用它,则会得到空指针异常。
虽然我可以在这里添加一个空检查,但我只想知道为什么当我清楚地禁用了侦听器时,我得到了一个方向事件。如果我在故障点检查OrientationEventListener
,它甚至会报告mEnabled=false
。有没有办法阻止事件传播给我的听众?
您好Sleeke,你有没有找到任何解决方案。我面临同样的问题。 –