2

我正在尝试在基于 AndEngine 的游戏中集成一些 Android 语音 API。

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

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

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

设置如下:

主类 - BaseGameActivity SpeechClass

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

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

4

1 回答 1

4

通过执行以下操作调用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如果需要一段时间,可能会减慢您的 UI ,但您可以解决这个问题。

于 2011-05-11T18:15:16.107 回答