【发布时间】:2016-11-27 17:35:40
【问题描述】:
我是 android 开发的新手,我正在尝试创建一个小游戏。我在SurfaceView 的GameView 子类中由构造函数创建了我的第一个CountDownTimer。
为了进入下一个级别,我应该做的是调用CountDownTimer class 的cancel(),重新调整所有元素以进入下一个级别并再次创建一个新的CountDownTimer。我在实现Runnable 的GameView 类的run() 中执行此操作。
我一直在网上阅读,但大多数解决方案都使用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)
提前感谢您的宝贵时间
【问题讨论】:
-
你尝试运行一些不在主线程中处理 UI 的函数。
标签: java android countdowntimer game-loop thread-synchronization