我正在为盲人编写一个安卓应用程序。所以我在我的应用程序中的每一个活动上都使用了TTS。
我不想在每个活动上再次初始化TTS,因为它需要时间和资源,所以我在我的应用程序类中创建了一个TTS对象,并在activitys上使用它。它工作得很好。
但是文档上说你必须这样做:
protected void onDestroy() {
super.onDestroy();
if (mTts != null) {
mTts.shutdown();
}
}但我不能这样做,因为我不想关闭我的共享对象(每次活动被销毁时),但如果我的程序破坏了它,我应该关闭它。那么:在哪里调用.shutdown()呢?或者,有没有人知道更好的方法来确保TTS快速加载?
发布于 2012-02-11 07:44:35
我强烈建议在服务中使用TTS,而不是在活动中使用。另外,在调用语音或合成文件之前,请确保等待TTS服务完成init。您可以在服务中对您的TTS对象进行静态单例引用,该引用可以在服务启动后从任何活动中获得。如果需要,我可以稍后发布一些代码片段。
发布于 2011-01-11 04:55:13
仅供参考,TTS不能在类之间继承。它被记录在Android Google论坛上。我看到你在毁灭。你也要关闭onPause吗?
https://stackoverflow.com/questions/4117878
复制相似问题