[英]Start a new CountDownTimer inside a run method
我是android开发的新手,我正在尝试创建一个小游戏。 我的第一个CountDownTimer
由构造函数在SurfaceView
GameView
子类中创建。
为了传递下一个级别,我应该做的是调用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)
预先感谢您的时间
感谢@Roman,我设法解决了我的问题,答案在这里是更详细的说明---> 视图内的runOnUiThread
我完成的工作就是使用post()
在run()
内创建了另一个Thread
。 我重复说我在SurfaceView
的子类中。
post(new Runnable() {
@Override
public void run() {
myTimer.cancel;
startTimer() //creates a new timer
}
});
希望将来对其他人有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.