2011-05-11 3 views

답변

6

이 질문이 활성화 된 지 오래되었지만, 나는 대답 할 필요가있다. 나는 같은 문제를 가지고 답을 찾았다.

매니페스트에 오리 엔테이션 변경시 기본 동작을 호출해서는 안되는 액티비티에 android:configChanges=orientation|screenLayout|layoutDirection을 추가해야합니다.

... 
<activity android:name=".Activity" 
    android:screenOrientation="portrait" 
    android:configChanges="orientation|screenLayout|layoutDirection|screenSize" 
... 


그리고 당신의 활동에

:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 
    // This overrides default action 
} 



원래 예 : 안드로이드를 호출하여 피할
http://android-er.blogspot.fi/2011/05/prevent-activity-restart-when-screen.html

+3

더 최근의 OS에도 "screenSize"를 추가해야했습니다. –

+0

예, 기본적으로 오리엔테이션 변경과 관련되거나 발생할 수있는 매개 변수를 추가하십시오. –

+0

@ 잭 : 네, 그게 작동하지 않는다면 .... – Opiatefuchs

0

시스템 콜백이라는 것을 피할 수는 없습니다. onStop에서 상태를 저장 한 다음 화면 방향이 변경된 후 더 빠른 상태 복구를 위해 onCreate로 시스템을 전달하도록 할 수 있습니다.

개발자 페이지의 thisthat 문서를 참조하십시오.

+1

이 캔 : configChanges = "오리엔테이션 | keyboardHidden". 그러나 여전히 문제가 있습니다. – indira

+0

글쎄, 오리 엔테이션 변경을 막을 수는 있지만 오리엔테이션이 바뀌면 (콜백 요청에 대한) 콜백 호출이되지 않습니다. –

+0

더하기 heiko가 절대적으로 라이트이기 때문에 ... – Opiatefuchs

2

이것은 기본 동작입니다. 방향이 바뀌면 작업이 다시 생성됩니다. 그러나 당신은이 사건을 무시하기로 결정할 수 있습니다. 여기에서 세부 정보를 찾을 수 있습니다 : How to make an application ignore screen orientation change?

+1

글쎄, 링크드 아티클의 기술은 오리엔테이션 변화 (콜백 요청이 무엇인지)가 변경되었을 때 콜백 호출을 방지하지 않을 것입니다. –

관련 문제