OrientationEventListener
イベントを報告しても問題が発生しました。OrientationEventListenerが無効の場合、onOrientationChanged()が呼び出されています
私はタブレイアウトで3つのフラグメントを扱っていますが、いずれかのフラグメントだけが方向変更を必要としています。私がこの断片から離れていくと、オリエンテーションの出来事が止まるようにしたい。デバイスを移動させながらIフラグメントを切り替えるとき
@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()
をonOrientationChanged(int angle)
にコールしようとすると、コールはnullを返します。つまり、使用しようとするとnullポインタ例外が発生します。
ここでヌルチェックを追加することはできますが、リスナーを明確に無効にしたときにオリエンテーションイベントを取得する理由を知りたいだけです。障害点でOrientationEventListener
を調べると、mEnabled=false
と報告されます。イベントがリスナーに伝播しないようにする方法はありますか?
こんにちはSleeke、これにはどんな解決策も見つかりました。私は同じ問題に直面しています。 –