2011-04-18 4 views
2

어떤 이유로 화면 방향이 바뀔 때마다 내 앱이 열리면 상황에 맞는 메뉴가 닫힙니다. 내가 본 모든 응용 프로그램은 화면을 회전 한 후에 메뉴를 열어 두었지만 응용 프로그램이 닫히는 이유를 알 수 없습니다.화면 방향이 바뀔 때마다 안드로이드 옵션 메뉴가 닫힙니다.

혼자서 구성 변경 사항을 처리하지 않습니다. 모든 방향 변경 후에 호출되는 onCreate 메서드가 메뉴를 전혀 다루지 않습니다. 나는이 문제에 대한 통찰력을 고맙게 생각한다. 다음에서 onCreate()하지만를 안드로이드 통화 (파괴 회전) 때

+0

내가 올바른 생각하면 내가 확실 해요 때문에 나는 대답으로이 추가 아니에요 ...하지만 난 당신이이 상태 및 저장을 처리해야 할 것으로 판단 그것은 오버라이드 된 onSaveInstanceState() 호출에서. – Maximus

+0

나는 그것을 해결했다! 내 onSaveInstanceState() 메서드 내에서 super.onSaveInstanceState()를 호출하는 것을 잊어 버렸기 때문에 일반적으로 저장되는 기본 상태 정보가 저장되지 않았습니다. – FernandoPR

답변

1

contextMenu를 기본적으로 인해 사라 :

당신은 안드로이드가 정상적인 활동을 통해 파괴 및-재 작성 과정을 가고 싶어하지 않는 경우; 대신 직접보기를 재 작성하려면 AndroidManifest.xml의 요소에 android : configChanges 속성을 사용할 수 있습니다.

<activity 
    android:name=".MainActivity" 
    android:launchMode="singleTask" 
    android:configChanges="orientation|keyboardHidden"> 
</activity> 

전화가 회전하기 때문에에서 onCreate() 메소드가 호출되지 않을 때 contextMenu를가 폐쇄되지 않고이 방법.

이 항목은 또한 도움이 될 수 있습니다 - Activity restart on rotation Android

+0

나는 파괴와 재현 과정을 이해한다. 내가 이해하지 못하는 것은 기본 동작을 어떻게 방해하는지입니다. 다음 코드 만 사용하여 간단한 활동을 만들었습니다. @Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.main); } @Override public boolean onCreateOptionsMenu (메뉴 메뉴) { MenuInflater inflater = getMenuInflater(); inflater.inflate (R.layout.menu, menu); return true; } 이것을 실행하고 방향을 반전하면 메뉴가 열린 상태로 유지됩니다. – FernandoPR

관련 문제