所以我想有一个计时器,当它数到3的时候,它会执行一些方法。但我想让它像倒计时一样每秒显示一次吐司。
我现在有:
new Timer().schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
doSomething()
}
});
}
}, 3 * 1000);
这将在3秒后执行doSomething()。那么如何添加每秒执行一次的方法呢?
所以它是这样做的:
0秒:吐司说3
1秒:吐司说2
2秒:吐司说1
3秒:执行doSomething()
发布于 2015-04-05 00:49:54
尝试:
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()时立即执行。
https://stackoverflow.com/questions/29448883
复制相似问题