2

我正在使用 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();
}
4

1 回答 1

3

正如其他人在对该问题的评论中所说的那样,我认为您将希望自己在这里处理配置更改。还有其他配置更改也可能导致您的活动重新启动,例如显示设备的硬件键盘。

在 Android 的 Mono 中,您可以在ActivityAttribute中指定要自己处理的这些:

[Activity(ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden)]
public class MainActivity : Activity
于 2012-01-08T16:40:45.317 回答