Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 文本到语音和方向变化_Android_Orientation_Text To Speech - Fatal编程技术网

Android 文本到语音和方向变化

Android 文本到语音和方向变化,android,orientation,text-to-speech,Android,Orientation,Text To Speech,我的应用程序大量使用了文本到语音API 这是一个引导玩家频繁改变方向的游戏。我有不同的纵向和横向布局,这是确定的 我使用onretainonconfigurationinstance()和onCreate()来保持状态 但是,有一个事实会导致问题: 我正在调用ondestory()中的tts.shutdown(),我认为这是正确释放资源所必需的。但是,当用户更改方向时,这会导致当前文本和所有排队消息丢失。由于文本到语音对象在“旧的”活动上有一个引用,因此我无法将其转移到新活动 如何解决这个问题?

我的应用程序大量使用了
文本到语音API

这是一个引导玩家频繁改变方向的游戏。我有不同的纵向和横向布局,这是确定的

我使用
onretainonconfigurationinstance()
onCreate()
来保持状态

但是,有一个事实会导致问题:

我正在调用
ondestory()
中的
tts.shutdown()
,我认为这是正确释放资源所必需的。但是,当用户更改方向时,这会导致当前文本和所有排队消息丢失。由于文本到语音对象在“旧的”活动上有一个引用,因此我无法将其转移到新活动


如何解决这个问题?

这对类很有用,您可以在
onCreate()
中启动TTS(忘记它,因为onTerminate()不是在实际设备上调用的)。

这对类很有用,您可以在
onCreate()
中启动TTS(忘记它,因为onTerminate())在实际设备上未调用。)

谢谢,但我需要startActivityForResult()方法来检查TTS,如中所示。有没有办法从服务中获取此方法?TTS有两个阶段1)初始化+关闭2)对话。1.这是我建议在全球范围内每次启动一次。2.仍然可以在单独的活动中完成。但我可能误解了你的意思。这里有一个潜在的内存泄漏。TTS对象是通过对上下文的引用创建的。如果TTS对象在配置更改之间被保留,并且它是以活动作为上下文创建的,那么这将导致内存泄漏(如所述)。也许可以使用应用程序对象作为上下文,尽管我还没有尝试过。谢谢,但我需要startActivityForResult()方法来检查TTS,如中所示。有没有办法从服务中获取此方法?TTS有两个阶段1)初始化+关闭2)对话。1.这是我建议在全球范围内每次启动一次。2.仍然可以在单独的活动中完成。但我可能误解了你的意思。这里有一个潜在的内存泄漏。TTS对象是通过对上下文的引用创建的。如果TTS对象在配置更改之间被保留,并且它是以活动作为上下文创建的,那么这将导致内存泄漏(如所述)。也许可以使用应用程序对象作为上下文,尽管我还没有尝试过。