0

Я новичок в разработке Android, и я пытаюсь создать небольшую игру. У меня есть мой первый CountDownTimer, созданный конструктором в моем GameView подклассе SurfaceView.Запустите новый CountDownTimer внутри метода запуска

Что я должен сделать для того, чтобы пройти на следующий уровень, это вызвать cancel() из CountDownTimer class, readapting все элементы на следующий уровень и создать новый CountDownTimer снова. Я делаю это в run() класса GameView, который реализует Runnable.

Я читал все через Интернет, но большинство решений использует Activities, как я уже сказал, я работаю в подклассе SurfaceView.

Это ошибка я получаю

E/AndroidRuntime: FATAL EXCEPTION: Thread-4 
       Process: com.example.lucadigiammarino.biogame, PID: 3569 
       java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
        at android.os.Handler.<init>(Handler.java:200) 
        at android.os.Handler.<init>(Handler.java:114) 
        at android.os.CountDownTimer$1.<init>(CountDownTimer.java:114) 
        at android.os.CountDownTimer.<init>(CountDownTimer.java:114) 
        at com.example.lucadigiammarino.biogame.GameCountDownTimer.<init>(GameCountDownTimer.java:0) 
        at com.example.lucadigiammarino.biogame.GameView.startTimer(GameView.java:135) 
        at com.example.lucadigiammarino.biogame.GameView.run(GameView.java:306) 
        at java.lang.Thread.run(Thread.java:761) 

Заранее спасибо за ваше время

+0

Вы пытаетесь запустить некоторые функции, относящиеся к пользовательскому интерфейсу, не в основном потоке. – phnmnn

+0

http://stackoverflow.com/questions/11086129/runonuithread-inside-a-view –

ответ

0

Благодаря @Roman мне удалось решить мою проблему, ответ здесь для более подробного объяснения - ->runOnUiThread inside a View

Что я сделал, я просто создал другой Thread внутри моей run() с помощью post(). Я повторяю, что я в подклассе SurfaceView.

post(new Runnable() { 
    @Override 
    public void run() { 
     myTimer.cancel; 
     startTimer() //creates a new timer 
    } 
}); 

Надеюсь, это может быть полезно для кого-то еще в будущем!