我正在使用MonoDroid,但是等效的Java答案仍然有用。
我正在使用纵向布局和横向布局,因此,如果可能,我想使用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();
}
答案 0 :(得分:3)
正如其他人在关于这个问题的评论中所说,我想你会想在这里自己处理配置更改。有other configuration changes也可能导致您的活动重新启动,例如泄露设备的硬件键盘。
在Mono for Android中,您可以在ActivityAttribute中指定自己要处理的内容:
[Activity(ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden)]
public class MainActivity : Activity