我有一个countDownTimer,它在单击按钮时每10秒执行一段代码。但是它仅在单击按钮10秒钟后执行代码。如何使它立即执行,然后每隔一秒钟执行一次?
CountDownTimer countDown;
public void onButtonClick (View v) throws IOException, InterruptedException {
countDown = new CountDownTimer(10000,10000)
{
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
start();
//codes
}.start();
}
}
答案 0 :(得分:0)
https://developer.android.com/reference/android/os/CountDownTimer
CountDownTimer(long millisInFuture,countDownInterval)
'millisInfutre'表示在start()之后直到调用onFinish()为止的毫秒数
将'millisInfutre'设置为更大。而且我认为没有必要在CountDownTimer的一部分中进行第一次调用。只需直接调用即可。
someYourTask(?);
new CountDownTimer(Long.MAX_VALUE, 10000) {
@Override
public void onTick(long l) {
someYourTask(?);
}
@Override
public void onFinish() {
Log.d("SOME_TAG", "FINISH");
}
}.start();
? someYourTask(?) {}
答案 1 :(得分:0)
如果您想每10秒执行一次代码,我建议您做点其他事情。
执行startRepeatingTask();单击按钮时。
private int interval = 10000; //every 10 seconds
private Handler handler;
Runnable codeExecuter = new Runnable() {
@Override
public void run() {
try {
//run your code
} finally {
handler.postDelayed(codeExecuter, interval);
}
}
};
void startRepeatingTask() {
codeExecuter.run();
}
void stopRepeatingTask() {
handler.removeCallbacks(codeExecuter);
}