如何使用处理程序定期调用多个方法?
How to call more than one methods at regular interval using handlers?
我知道如何使用 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 毫秒的延迟来重复相同的操作。
但我还希望方法调用之间有 500 毫秒的延迟。我的意思是执行 for 循环时。我怎样才能只使用一个处理程序和可运行的?如何在方法调用之间引入 500 毫秒的延迟?
我会自己在 Handler
次调用中更新 index
的值,并将其与您的 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()
。
我知道如何使用 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 毫秒的延迟来重复相同的操作。
但我还希望方法调用之间有 500 毫秒的延迟。我的意思是执行 for 循环时。我怎样才能只使用一个处理程序和可运行的?如何在方法调用之间引入 500 毫秒的延迟?
我会自己在 Handler
次调用中更新 index
的值,并将其与您的 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()
。