there과 같이 장치의 디스플레이가 잠금 화면에있는 동안 게임 중에 문제가 발생합니다. 몇 가지 이유로 게임을 다시 시작하기 위해 사용자 입력을 요구할 수 없으므로 게임을 다시 시작하기 위해 onWindowFocusChanged 이벤트를 catch하고 싶습니다. 불행히도 솔루션은 내 경우에는 작동하지 않습니다 설명했다.onWindowFocusChanged()는 false로만 호출합니다.
응용 프로그램은 가로 방향을 사용합니다. AndroidManifest.xml :
휴대 전화를 세로 방향으로 사용할 때 잘못된 것이 있습니다. 시작시 모두 좋다. 간단한 로그 :
02-12 18:18:28.329: E/activity(15215): onDestroy called
02-12 18:18:28.329: E/activity(15215): onCreate called
02-12 18:18:28.389: E/activity(15215): onStart called
02-12 18:18:28.389: D/activity(15215): onResumeCalled
02-12 18:19:06.329: D/activity(15215): onWindowFocusChanged called with focus = true
하지만 전원 장치를 잠 갔다가 잠금 해제 버튼 누를 때 : (false)를
02-12 18:30:55.629: E/activity(22605): onPause called
02-12 18:30:55.629: E/activity(22605): onStop called
02-12 18:30:58.379: E/activity(22605): onDestroy called
02-12 18:30:58.839: E/activity(22605): onCreate called
02-12 18:30:58.839: E/activity(22605): onStart called
02-12 18:30:58.839: D/activity(22605): onResumeCalled
02-12 18:30:58.849: D/activity(22605): onPauseCalled
02-12 18:30:59.219: D/activity(22605): onResumeCalled
02-12 18:30:59.479: D/activity(22605): onPauseCalled
02-12 18:30:59.559: E/activity(22605): onStop called
02-12 18:34:01.899: E/activity(22605): onRestart called
02-12 18:34:01.899: E/activity(22605): onStart called
02-12 18:34:01.909: D/activity(22605): onResumeCalled
02-12 18:34:20.409: D/activity(22605): onPauseCalled
02-12 18:34:20.409: E/activity(22605): onStop called
02-12 18:34:20.409: E/activity(22605): onDestroy called
02-12 18:34:20.609: E/activity(22605): onCreate called
02-12 18:34:20.609: E/activity(22605): onStart called
02-12 18:34:20.609: D/activity(22605): onResumeCalled
02-12 18:34:20.769: D/activity(22605): onWindowFocusChanged called with focus = true
onWindowFocusChanged를 호출하지, 링크에 설명 된 솔루션을하기 전에 작동하지 않습니다.
또한 기기가 잠김/잠금 해제되는 동안 onDestroy/onCreate에 대한 많은 호출이 걱정됩니다. 내가 이해했듯이, 활동은 풍경 (게임)에서 초상화 (장치 잠금 화면)로 바뀌고 풍경으로 돌아 오기 때문에 발생합니다. 그러나 그러한 파괴적인 활동으로 onWindowFocusChanged (false)를 호출 할 시간은 없습니다.
그래서, 내 질문 :
- 어떻게 소리가 잠금 화면에 재생 원래 문제를 해결하기 위해?
- onDestroy/onCreate를 여러 번 호출하지 않는 것이 가능합니까?
감사합니다.
UPDhere에서 솔루션을 구현했으며 장치가 모두 정상적으로 작동하지만이 솔루션이 완벽하게 작동하는지 확신 할 수 없습니다. 첫 번째 링크에서 : 장치가 자체적으로 잠, 또는 사용자가 전화를 잠금 후 즉시 잠금을 해제하는 경우, 앱을받지 못할 수 있습니다
경우 모든 초점은 전혀 메시지를 변경했습니다.
그래서 모든 경우에 onWindowFocusChanged (true)가 호출 될지 확신하지 않습니다. 가능한 해결책인가? 여러 통화에 대한
UPD 2들의 OnDestroy /에서 onCreate : 구성 변경 사항에 대한 구글의 활동 API에 썼던 것처럼, 나는 디스플레이 방향에 대한 구성 변경을 차단하는 것을 시도했다, 그러나 그것은 나를 위해 잘 작동하지 않습니다.
[이 링크] (http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/)에 설명 된대로 화면 이벤트를 구현했지만 SCREEN_ON 화면을 켜고 디스플레이를 잠금 해제하기 전에 이벤트가 발생합니다. 디스플레이를 잠금 해제 한 후에 발생하는 특별한 의도가 있습니까? –