我知道如何使用handler和runnable定期调用方法。但是现在我想在固定的时间间隔内调用多种方法。以下是我的一个课程中的代码:
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
for(int index = 0; index < count; index++) {
//Do something based on the index value
}
handler.postDelayed(runnable, 500);
}
};
在我的代码中,我将使用以下代码开始执行:
handler.postDelayed(runnable, 0);
因此,首先调用与索引0对应的第一个方法,然后调用其他方法。然后将有500毫秒的延迟重复相同的事情。
但我也想在方法调用之间延迟500ms。我的意思是执行for循环。我怎么能只用一个处理程序和runnable呢?如何在方法调用之间产生500ms的延迟?
答案 0 :(得分:1)
我会自己在index
个调用中更新Handler
的值,并将其与count
变量进行比较,就像for
循环一样
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
private int index = 0;
@Override
public void run() {
//Do something based on the index value
index++;
if (index < count) {
handler.postDelayed(runnable, 500);
} else {
count = 0;
}
}
}
此外,在开始时您无需在零延迟时调用postDelayed()
,您可以直接拨打post()
。