如何在Android游戏中实现计时器

时间:2014-05-12 09:17:38

标签: android timer

在我的安卓游戏中,有一个街机模式,运行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();

2 个答案:

答案 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);