Android SpeechRecognizer只能在应用程序的主线程中使用

时间:2011-05-11 18:09:10

标签: java android speech-recognition speech-to-text

我正在尝试将一些Androids Speech APIS整合到我基于AndEngine的游戏中。

我将我的代码放在BaseGame活动中 - 但是这个错误在运行时出现:

05-06 23:51:28.955:ERROR / AndroidRuntime(553):java.lang.RuntimeException:SpeechRecognizer只能在应用程序的主线程中使用

如何访问应用程序主线程?我怎样才能确保我的语音代码在其中运行。

设置如下:

主类 - BaseGameActivity SpeechClass

Main Class实例化一个新的SpeechClass +调用它的方法 - 然后我得到上面的错误。

请告知我如何正确地做到这一点。

1 个答案:

答案 0 :(得分:2)

通过执行以下操作来调用主线程上的SpeechClass

final SpeechClass c = getSpeechClass(); // get the speech class

View v = findViewById(R.id.anyview); //fetch a View: any one will do

v.post(new Runnable(){ public void run(){ c.doSomething(); }});

那应该在主线程上运行它。如果doSomething需要一段时间,可能会降低你的用户界面,但你可以解决这个问题。