OrientationEventListener
이벤트를보고하지 않는 경우에도 문제가 발생합니다.OrientationEventListener가 비활성화 된 경우 onOrientationChanged()가 호출되고 있습니다.
탭 레이아웃에서 세 조각으로 작업하고 있으며 단편 중 하나에 만 방향 변경이 필요합니다. 이 조각에서 벗어나면 오리엔테이션 이벤트가 효과를 멈추길 바란다. 장치를 이동시키면서 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 포인터 예외가 발생합니다.
여기에 null 체크를 추가 할 수 있지만 리스너를 명확하게 비활성화했을 때 방향 이벤트가 발생하는 이유를 알고 싶습니다. 실패 지점에서 OrientationEventListener
을 검사하면 mEnabled=false
도보고됩니다. 이벤트가 내 리스너에게 전파되는 것을 막을 수있는 방법이 있습니까?
안녕 슬레 이크, 이것에 대한 해결책을 찾았습니까? 나는 같은 문제에 직면 해있다. –