延迟后调用方法

时间:2014-03-27 14:59:34

标签: java android timer delay stopwatch

我已经创建了登录屏幕,如果用户错误3次,我想显示2分钟的计时器。我希望在屏幕上直观地显示该计时器。我会尝试这个代码并且它可以工作,但我不知道如何在屏幕上显示计时器。

 Handler handler = new Handler();
 long waitingTime = 2 * 60 * 1000; // 2 min

 handler.postDelayed(new Runnable() {
 @Override
 public void run()
 {
     //Do something after 2 min         
 }
 }, waitingTime);

2 个答案:

答案 0 :(得分:2)

您需要每秒调用Handler并在每次传递期间更新UI。当你达到2分钟时,你可以取消处理程序。

代码应该是这样的:

final Handler handler = new Handler();
//class variable
count = 0;

handler.post(new Runnable() {
    @Override
    public void run() {
        updateCounter(count++);

        if(count < 120) {
            handler.postDelayed(this, 1000);
        }
    }
});

更新计数器的功能:

private void updateCounter(final int count) {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            // you have the seconds passed
            // do what ever you want
        }
    });
}

答案 1 :(得分:0)

你需要使用runOnUiThread(Runnable action)