2012-08-14 3 views
0

단추를 누른 후 일부 작업을 시작하는이 프로그램이 있는데이 작업이 실행되는 동안 방향을 변경할 수 없습니다. 그 방법을 알아 냈지만 내 문제는 내 코드가 한 가지 방법으로 만 작동한다는 것입니다. 작업이 실행되는 동안 세로 방향으로 연속적인 방향을 유지하고 작업이 완료된 후에 만 ​​방향을 가로로 변경합니다 (사용자가 작업 중에 장치를 회전 한 경우). 그러나 가로 모드에서도 동일한 문제가 발생합니다. 작업이 실행중인 경우에도 세로로 회전합니다.방향 변경 방지

다음은 여전히 ​​방향을 유지하는 데 사용하는 코드입니다. 이 코드는 버튼의 onclick 방법에 있습니다

final int ori = getResources().getConfiguration().orientation; 
     setRequestedOrientation(ori); 

다음 내가 작업을 완료 한 경우 매 초마다 확인 내 핸들러 클래스를 가지고 있고이 경우는 방향을 변경 내 장치 premission을 제공합니다. 나는 또한이 답변은 upvotes을 많이 가지고 setRequestedOrientation(4);setRequestedOrientation(10);

+2

하드 코드 된 정수를 사용해서는 안됩니다. [문서] (http://developer.android.com/reference/android/content/pm/ActivityInfo.html)에는 화면 방향의 유형이 나열되어 있습니다. 나는 당신이'setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); '을 찾고 있다고 생각한다. – Eric

+0

내 자신의 코드와 같은 결과를 얻으려고했습니다. –

+0

흥미 롭습니다. 작업이 끝난 후에 세로 방향과 가로 방향을 변경하려고 시도 했습니까? 방향이 변경 될 수도 있는지 확인하기 위해 시도 했습니까? – Eric

답변

0

을 시도

setRequestedOrientation(-1); // as far as I know -1 in this case means unspecified 

: Background task, progress dialog, orientation change - is there any 100% working solution?

내가이 생각을 당신이 무엇인가 이렇게하려면이 코드를 사용 찾고. 조금 복잡해.

+0

나에게 너무 복잡합니다. 나는 AsyncTask를 사용한 적이 없다. 간단한 해결책이 없습니까? 나는 왜 내 코드가 한 가지 방법으로 작동하는지 이해하지 못한다. –