2013-12-24 2 views
0

Я хочу сделать простое действие в моей игре через одну секунду. У меня есть класс GameScene, который расширяет сцену Andengine.Andengine - handler.postDelayed не работает

public class GameScene extends Scene{ 
    //(...) 
    Handler delayHandler; 

    public GameScene(){ 
     Looper.prepare(); 
     delayHandler = new Handler(); 
    } 
    //(...) 

    public void sphereTouched(){ 
     //(...) 
     delayHandler.postDelayed(new Runnable() { 
     public void run(){ 
      Log.d("DEB","postDelayed test"); 
     } 
     }, 1000); 
    } 
} 

Когда сферическая функция называется операция из postDelayed не запускается. Другие операции с этой функцией работают правильно. Я что-то пропустил?

+0

y dont u использовать Asynctask? – KOTIOS

+0

Вы инициализировали delayHandler? – Matt

+0

Я не знаю, связано ли это (возможно, у вас есть два отдельных обработчика и только инициализация?) Или нет (возможно, это просто ошибка в коде, размещенном здесь), но обратите внимание, что вы используете 'delayHandler' в' sphereTouch ', а только инициализацию' handler' в конструкторе. – kabuko

ответ

0

используйте этот код для обработчика.

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // your code 
     } 
    }, 1000); 
+1

как это все ? – njzk2

+0

@Override public void run() { // ваш код } – Programer

+0

мой вопрос стоит. – njzk2

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