我试图在5秒后调用一个方法。我在OnCreate函数中编写了这段代码,但它只运行一次。我究竟做错了什么 ?
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
getData();
}
}, 5000);
答案 0 :(得分:1)
因为处理程序只运行一次消息。如果您希望它多次发布(每次延迟5秒),您需要执行以下操作:
final Handler handler = new Handler(Looper.getMainLooper);
handler.postDelayed(new Runnable() {
@Override
public void run() {
getData();
handler.postDelayed(this, 5000);
}
}, 5000);
当它完成一次运行时,它会重新发送相同的runnable并带有新的延迟。