我已经创建了登录屏幕,如果用户错误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);
答案 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)