다음과 같은 행동이 가능한지 물어보고 싶습니다. 만약 그렇다면 어떻게 할 수 있습니까? 매우 구체적인 이유로이 행동이 필요합니다. 세로 방향으로, 활동가에서활동을 일시 중지했을 때와 같은 방향으로 다시 시작 하시겠습니까?
, 나는 (고정 가로 방향가) 활동 B를 시작 :
내가이 개 활동을, 나는 활동 A와 활동 B. 지금의이 예를 살펴 보자 그들을 호출 . 사용자는 B 액티비티가 가로 방향으로 표시 될 때 분명히 장치를 회전시킵니다. 활동 B가 완료되고 활동 A가 재개됩니다. 사용자는 장치를 가로 방향으로 유지하여 활동 A의 방향이 즉시 재개되는 즉시 다시 변경됩니다.
내가 원했던 것은 사용자가 다시 돌아올 때 활동 A의 방향이 바뀌는 것을 피하는 것입니다. 지난 오리엔테이션에서 활동 A를 다시 시작하고 그 후에 오리엔테이션 변경 만 허용하려고합니다.
사용자가 언제든지 방향을 변경할 수 있도록하려는 경우 방향을 잠글 수 없습니다.
android : configChanges = "orientation | screenSize"솔루션은 방향 변경 후 내 활동을 다시 만들고 싶지 않기 때문에 옵션이 아닙니다.
내가 원하는 것을 얻을 수있는 옵션이 있습니까?
감사합니다.
EDIT : 활동 A가 삭제되기 전에 현재 방향을 저장하고 다시 만들 때 복원하는 것도 옵션이 아닙니다. 활동 B는 활동 B가 끝난 후 다시 작성하면 안됩니다.
EDIT 2 : 나는 지금 생각하고 있었고 다른 관점에서 질문을 다시 쓸 수 있다는 것을 깨달았습니다.
활동 B가 완료된 후 다시 시작될 때 활동 A의 재 작성을 피하고 싶습니다.
Afaik, 장치 방향이 변경되면 메시지가 ActivityThread로 보내집니다 (RELAUNCH_ACTIVITY 값). 이로 인해 액티비티 A가 새 화면 방향으로 다시 생성됩니다.
나는 내 문제를 해결할 수있는 활동을 다시 시작하고 마지막 방향을 유지하려고합니다.
활동이 다시 생성되는 시점을 제어 할 수 없습니다. 활동의 상태를 다른 클래스로 정의하고 onSaveInstanceState/onCreate에 저장/복원해야합니다 (http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os). 묶음) 그 상태는 마지막 방향성을 포함 할 수 있습니다. –
그게 내가 다른 경우에하는 일이지만,이 특별한 경우에는 할 수 없습니다. 현재 활동 A의 인스턴스를 유지해야합니다. –
그렇게 할 수 없습니다. Android는 언제든지 내 활동을 중단시킬 수 있습니다. 안드로이드는 서비스를 죽일 수 있지만 당신은 서비스에 죽이고 싶지 않은 것을 옮길 수 있습니다. –