以编程方式减少处理程序中的时间间隔。 Android
Programatically reduce time interval in handler. Android
当您在处理程序上使用 postDelayed 函数时,需要一个 delayMillis 变量来指定处理程序 运行s 之后的时间。我希望我的处理程序无限期地重复,所以我嵌套了两个 postDelayed 函数。
final int initialdt = 1000;
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
handler.postDelayed(this, initialdt);
}
};
handler.postDelayed(r, initialdt);
但是使用这种方法,运行() 调用之间的时间是固定的。由于内部 postDelayed 需要一个 final 整数作为参数。我想减少连续通话之间的时间。有办法吗?
这应该可以满足您的要求。
final int initialDt = 1000;
final Handler handler = new Handler();
final Runnable r = new Runnable() {
int dt = initialDt;
public void run() {
dt -= 100;
if (dt >= 0) {
handler.postDelayed(this, dt);
}
}
};
handler.postDelayed(r, initialDt);
你可以在里面设置限制 postDelayed
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
handler.postDelayed(this, limit);
}
}, 1000);
当您在处理程序上使用 postDelayed 函数时,需要一个 delayMillis 变量来指定处理程序 运行s 之后的时间。我希望我的处理程序无限期地重复,所以我嵌套了两个 postDelayed 函数。
final int initialdt = 1000;
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
handler.postDelayed(this, initialdt);
}
};
handler.postDelayed(r, initialdt);
但是使用这种方法,运行() 调用之间的时间是固定的。由于内部 postDelayed 需要一个 final 整数作为参数。我想减少连续通话之间的时间。有办法吗?
这应该可以满足您的要求。
final int initialDt = 1000;
final Handler handler = new Handler();
final Runnable r = new Runnable() {
int dt = initialDt;
public void run() {
dt -= 100;
if (dt >= 0) {
handler.postDelayed(this, dt);
}
}
};
handler.postDelayed(r, initialDt);
你可以在里面设置限制 postDelayed
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
handler.postDelayed(this, limit);
}
}, 1000);