2

Android Speech API の一部を AndEngine ベースのゲームに統合しようとしています。

コードを BaseGame アクティビティ内に配置しましたが、実行時に次のエラーが表示されます。

05-06 23:51:28.955: エラー/AndroidRuntime(553): java.lang.RuntimeException: SpeechRecognizer は、アプリケーションのメイン スレッドからのみ使用する必要があります

アプリケーションのメイン スレッドにアクセスするにはどうすればよいですか? また、Speech コードがその中で確実に実行されるようにするにはどうすればよいでしょうか。

セットアップは次のとおりです。

メイン クラス - BaseGameActivity SpeechClass

メイン クラスが新しい 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(); }});

それはメインスレッドで実行する必要があります。時間がかかると UI が遅くなる可能性doSomethingがありますが、それを解決することができます。

于 2011-05-11T18:15:16.107 に答える