所以我希望有一个计时器,当它计数到3时会执行一些方法。但是我想让它像倒计时一样每秒显示一次吐司。
我现在有:
new Timer().schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
doSomething()
}
});
}
}, 3 * 1000);
3秒后执行doSomething()。那么如何才能每秒添加一个方法呢?
这样做:
0秒:Toast说3
1秒:Toast说2
2秒:Toast说1
3秒:执行doSomething()
答案 0 :(得分:0)
尝试:
private static final int SHORT_DELAY = 1000; //1 sec
new Timer().schedule(new TimerTask() {
int i=1;
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
//Can u check logs if running?
Log.d("Timer running",String.valueOf(i));
i++;
if(i%4==0) //started with 1 so -->2,3,4
doSomething()
else
Toast.maketext(getApplicationContext(),String.valueOf(i-1),
SHORT_DELAY).show();
}
});
}
},0, 1000);
请在适当的地方取消。也许当你的工作完成时,或者当doSomething()被调用时。