1

いくつかのアクティビティとさまざまなシーンを作成しました。ここで、Scene Manager を使用してそれらをすべてマージしたいと思います。しかし、java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() で問題が発生しました。これは、ハンドラーを使用したためです。誰でも簡単な解決策を教えてもらえますか? 分離されたクラス/アクティビティからシーン マネージャーを作成するには、どのメカニズムを使用する必要がありますか?

具体的には、ネストされたクラス内でハンドラーを使用できません。Andengine だけでなく、Java に関する質問になってしまい申し訳ありません。

   public class MainActivity extends BaseGameActivity
   {

    public static class SceneManager1 {

    public static Handler handlerAchievementOwl = new Handler(){
        @Override
          public void handleMessage(Message msg){
            Log.i("Peakpeak","Peak inside Handler");
            }

    };
   }

   }
4

2 に答える 2

2

このコードを試してください:

public class MainActivity extends BaseGameActivity
{
private static Activity thisActivity;

protected void onCreate(){
    super.onCreate();
   thisActivity = this;
}

public static class SceneManager1 {

    public static Handler handlerAchievementOwl = new Handler(){
        @Override
        public void handleMessage(Message msg){
            Log.i("Peakpeak", "Peak inside Handler");

 thisActivity .runOnUpdateThread(new Runnable() {
                @Override
                public void run() {
                    //do your magic
                }
            });
        }

    };
}
于 2013-07-25T12:07:08.107 に答える