MonoDroid를 사용하고 있지만 해당 Java 응답이 여전히 도움이 될 수 있습니다.OnPause()의 화면 방향 변경 감지
세로 레이아웃과 가로 레이아웃을 사용하고 있으므로 가능하다면 안드로이드 화면 방향을 사용하여 자동으로 활동을 생성/생성하고 싶습니다.
내 앱에서 TextToSpeech
을 사용하고 있으므로이 활동에서 OnPause()
을 중지하고 있습니다. 홈 키를 누르거나 수신 전화가 올 때 제대로 작동합니다. 그러나 사용자의 화면 방향 변경에 대한 TextToSpeech를 중지하고 싶지는 않습니다.
TextToSpeech
이 중단되지 않도록이 변경을 감지하는 간단한 방법이 있습니까?
내 활동의 OnStop()
코드 :
protected override void OnPause()
{
// I need this for Home key, intercepting phone calls, etc.
// But how can I prevent this for a screen orientation change?
// Need to enable screen orientation to get my portrait/landscape views
if(Text2Speech.IsTextToSpeechInitialised && Text2Speech.TextToSpeech != null)
Text2Speech.TextToSpeech.Stop();
base.OnPause();
}
당신이'안드로이드를 사용하여 봤어 명백한? 이는 방향 변경을 직접 처리하도록 지정합니다. 'Activity'에서'onConfigurationChanged'를 오버라이드하고 (레이아웃 변경 등)해야 할 일을하십시오. – Squonk
나는 그것을 보았고 그것이 내가 가야만하는 접근 일 수있다. 가능한 경우 내 인물 활동을 파괴 할 때/내 풍경 활동을 만들 때 안드로이드가 저에게 모든 것을 돌보고 싶습니다. 그 반대도 마찬가지입니다. OnPause() 중에 오리엔테이션 변경을 감지하는 쉬운 방법이 있는지 궁금합니다. –
아니요 쉽게 알 수있는 방법이 없습니다. '활동'라이프 사이클은 다양한 것들 (예를 들어 들어오는 전화)의 영향을받습니다. '활동'(일시 중지, 중지 중지) '아웃'단계에서는 '왜'이런 일이 발생했는지 설명 할 수있는 시스템 메커니즘이 없습니다. 당신이 가진 최선책은 변화를 직접 처리하는 것입니다. 'onConfigurationChanged (...) '에 전달 된'Configuration' 객체는 적어도 이것이 정확한 레이아웃으로'setContentView (...)'를 사용해야 할 방향 변경임을 확인하는데 도움이 될 것입니다. 저조한 일이지만 너무 나쁘지는 않습니다. – Squonk