2013-12-03 1 views
0

У меня была ошибка, как в заголовке со следующим кодом: Может кто-нибудь помочь мне с исправлением? Буду очень благодарен.ошибка, связанная с CountDownTimer Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare()

final Sprite mPocisk = new Sprite(0, 0,this.mPocisk, getVertexBufferObjectManager()); 
    scene.attachChild(mPocisk); 
    mPocisk.setVisible(false); 
    final Katapulta S_katapulta_wystrzelona = new Katapulta(10, 300, this.mKatapulta_wystrzelona, getVertexBufferObjectManager()); 
    final Katapulta S_katapulta_zaladowana = new Katapulta(10, 300, this.mKatapulta_zaladowana, getVertexBufferObjectManager()){ 
     @Override 
     public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { 
      setVisible(false); 
      S_katapulta_wystrzelona.setVisible(true); 
      double time = rzut.t; 
// I think following code generate error 
       new CountDownTimer((long) (time*100), 500) { 
        public void onTick(long millisUntilFinished) { 
         double time_copy=+0.5; 
         System.out.println("test"); 
         mPocisk.setPosition((float)rzut.getXfor(time_copy), (float)rzut.getYfor(time_copy)); 
         mPocisk.setVisible(true); 
        } 
        public void onFinish() { 
        } 
        }.start(); 
      return true; 
     } 
    }; 
+0

meybe кто-то может мне помочь? – Blackchart

+0

Это вопрос того, чтобы быть в правильной теме - см. Этот вопрос для некоторых идей о том, как справиться с этим - http://stackoverflow.com/questions/9849741/toasts-in-andengine-scenes – jmroyalty

+0

или лучше, см. @Ved Пракаш отвечает в этой теме - http://stackoverflow.com/questions/3875184/cant-create-handler-inside-thread-that-has-not-called-looper-prepare. Все эти ответы касаются Toast, но одни и те же принципы применяются независимо от типа рабочей нити. – jmroyalty

ответ

0

Я решить эту проблему следующим образом

engine.registerUpdateHandler(new TimerHandler(1.0f, new ITimerCallback() 
    { 

     @Override 
     public void onTimePassed(final TimerHandler pTimerHandler) 
     { 
      //Your task 
     } 
    })); 
+0

Спасибо! Это мне очень помогает! – Blackchart

Смежные вопросы

 Смежные вопросы