在我的安卓游戏中,有一个街机模式,运行60秒。 UI必须每秒更新一次。是否建议使用CountDownTimer
来实现这一点,因为据我所知,这个类不会在单独的线程上运行?在不影响用户体验的情况下,有哪些其他方式或最佳方式?
解决我的问题的确切代码
new Thread(new Runnable() {
// this creates timer in another thread
@Override
public void run() {
// TODO Auto-generated method stub
long starttime = System.currentTimeMillis();
time=60;
while(time>0)
{
SystemClock.sleep(1000);
long currenttime = System.currentTimeMillis();
time= (int) (60-((currenttime-starttime)/1000));
// this updates the UI
timerhandler.post(new Runnable()
{
@Override
public void run() {
// TODO Auto-generated method stub
tv0.setText(time + " s");
}
});
}
}
}).start();
答案 0 :(得分:2)
使用
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
// Your code
}
}, 60*1000));
答案 1 :(得分:0)
您可以使用Timer和TimerTask类。示例(它给出了6秒的延迟。最好使用单独的线程)
Timer timer = new Timer("My Timer");
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("Timer task completed .......");
}
};
System.out.println("Timer task started.......");
timer.schedule(task, 0, 6000);