5

일부 조건에서는 오리 엔테이션을 변경할 수있는 활동을 만들고 싶습니다. 좀 더 정확히 말하자면 백그라운드 스레드가 사용 중일 때 활동을 다시 시작하지 못하게하고 싶습니다.onconfigurationChanged에서 조건부 재시작

오리엔테이션이 변경되면 onConfigurationChanged이 호출됩니다. configChanges 속성을 액티비티 매니페스트에 넣었습니다. 그러나 허용 때 응용 프로그램이 방향 을 변경할 수 있도록하고 싶습니다.

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (orientationChangeAllowed) { 
     // how do I restart this activity? 
    } else { 
     // don't do anything 
    } 
} 

답변

7

허용되는 경우 setRequestedOrientation()으로 전화를 걸면 아무 것도하지 않습니다.

팁 : onRetainNonConfigurationInstance()getLastNonConfigurationInstance()을 사용하고 AsyncThread을 포함하는 개체를 반환 할 수 있습니다. 이렇게하면 Activity은 사용자가 원하는 방향으로 바뀝니다. 그러나 메모를 작성하십시오. Context에 대한 참조가 누설되어서는 안됩니다 (Activity 또는 Drawable ...에 대한 참조 일 수 있음).