기기가 세로에서 가로로 회전 할 때마다 do_something()
이 필요합니다.화면 회전 직전에 무엇인가 하시겠습니까?
나는 내 매니 페스트에 <activity android:configChanges="orientation" >
을 추가했습니다. 따라서 내 장치를 돌릴 때마다 이 호출됩니다. 그리고 그것은 이 아니며은 활동을 다시 만듭니다. 내 기능에
:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
do_something();
}
then_fire_off_the_screen_rotation_as_normal();
// which means re-start the Activity
// i expect it will fire off onSaveInstanceState() -> onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onRestoreInstanceState() -> onResume()
}
내 문제는 내가 then_fire_off_the_screen_rotation_as_normal()
에서 무엇을 할 수 있는지 잘 모릅니다.
내가 setRequestedOrientation()
를 사용하여 시도했지만 이러한 목적으로 서비스를 제공하는 기능이없는 것 같다
이 ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
, ActivityInfo.SCREEN_ORIENTATION_SENSOR
, 또는 ActivityInfo.SCREEN_ORIENTATION_USER
에서 활동은 여전히 이 다시 시작되지 않습니다 내가 통과 할 때. (전화하지 않는 것처럼)
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
을 전달하면 방향 센서가 꺼집니다. (이 말했듯이.)
내가 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
전달
AndroidRuntime:NullPointerException
와
강제 닫기했다.
(구체적으로 : 그것은 가로 레이아웃의 세로 레이아웃에서 프로그램 추가 조각이 있기 때문입니다,하지만 그들은 풍경에 필요하지 않은 것처럼 do_something()
함수에서, 내가 그 조각을 제거합니다. 모드를 사용합니다.)
글쎄, 난 이미이 접근법의 결정 약점 생각. 우리는 풍경 모드에있는 동안 앱을 전환하거나 화면을 잠급니다. **는 ** do_something()을 트리거합니다 **. – midnite