问题描述:
在Android中使用Handler.postDelayed()
方法时,发现只能工作一次。
解决方法:
使用Handler.post()
代替Handler.postDelayed()
:
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
// 执行需要延迟执行的任务
// ...
// 再次调用post方法,实现重复执行
handler.post(this);
}
});
使用Handler.post()
方法可以实现重复执行任务,通过在任务结束时再次调用handler.post(this)
来实现循环执行。
使用Handler.sendMessageDelayed()
:
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 执行需要延迟执行的任务
// ...
// 再次发送消息,实现重复执行
sendEmptyMessageDelayed(0, delayMillis);
}
};
handler.sendEmptyMessageDelayed(0, delayMillis);
使用Handler.sendMessageDelayed()
方法可以实现重复执行任务,通过在handleMessage()
方法中再次发送消息来实现循环执行。