我正在使用MonoDroid,但等效的Java答案仍然可以提供幫助。檢測OnPause中的屏幕方向更改()
我正在使用縱向佈局和橫向佈局,因此,如果可能的話,我想使用Android屏幕方向自動創建/刪除活動。
我的應用程序,以便在使用TextToSpeech
我來控制它的活動的OnPause()
,當Home鍵被按下或來電正在發生的效果很好。不過,我不想停止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();
}
你有沒有看使用Android的'表現?這指定您要自己處理方向更改。在你的Activity中覆蓋'onConfigurationChanged'並做任何你可能需要做的事情(改變佈局等)。 – Squonk 2012-01-08 08:51:08
我看到了,它可能是我必須去的方法。如果可能的話,我希望Android能夠在銷燬我的肖像活動/創建景觀活動時爲我處理所有這些問題,反之亦然。我只是想知道是否有一個簡單的方法來檢測OnPause期間的方向變化() – 2012-01-08 09:06:23
否,沒有簡單的方法知道。 「活動」生命週期受各種因素影響(例如來電)。在「活動」的「退出」階段(暫停,停止銷燬),沒有系統機制來解釋發生這種情況的原因。你得到的最好的是自己處理變化。傳遞給'onConfigurationChanged(...)'的'Configuration'對象至少可以幫助你識別這是一個方向改變,在這一點你只需要使用'setContentView(...)'以正確的佈局。這很費勁但不是太糟糕。 – Squonk 2012-01-08 09:53:27