android中的倒计时器

时间:2013-11-22 10:21:56

标签: java android countdowntimer

我有一个包含一些值的表,我想每10秒更新一次UI(值)。我想向用户展示一个倒数计时器,以了解将要发生的事情...... 但它崩溃了。 我用于此的代码如下所示:

tv2_r7= (TextView) this.findViewById(R.id.textView2_r7);

    final Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        int i = 10;
        public void run() {
            tv2_r7.setText(String.valueOf(i));
            i--;
            if (i< 0)
                timer.cancel();
        }
    }, 0, 1000);

当我有System.out.println(i--);而不是tv2_r7.setText(String.valueOf(i)); i--;

时,它在简单的Java应用程序中运行良好

1 个答案:

答案 0 :(得分:2)

您已更新计时器中的UI值,这是错误的。你需要使用

  

runOnUIThread

那里的方法。

tv2_r7 = (TextView) this.findViewById(R.id.textView2_r7);

    final Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask()
    {
        int i = 10;

        public void run()
        {
            runOnUIThread(new Runnable()
            {

                @Override
                public void run()
                {
                    tv2_r7.setText(String.valueOf(i));

                }
            });

            i--;
            if (i < 0)
                timer.cancel();
        }
    }, 0, 1000);
}