我正在使用monodroid,但一个类似的java答案仍然有帮助。
我使用的是纵向布局和横向布局,因此,如果可能的话,我想使用android屏幕方向来自动销毁/创建活动。
我的应用程序正在使用TextToSpeech
,因此在活动的OnPause()
中,我正在停止它,当按下Home键或正在进行来电时,它工作得很好。但是,我不想停止用户在屏幕方向更改时发送的文本。
有没有一种简单的方法来检测这种变化,以便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();
}
最佳答案
正如其他人在对这个问题的评论中所说的,我认为您需要在这里自己处理配置更改。还有一些other configuration changes也会导致您的活动重新启动,例如显示设备的硬件键盘。
在mono for android中,您可以在ActivityAttribute中指定要处理的是哪一个:
[Activity(ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden)]
public class MainActivity : Activity