我使用处理程序在几秒钟后调用一个函数,但它无法正常工作

时间:2017-03-27 14:43:39

标签: android handler

我试图在5秒后调用一个方法。我在OnCreate函数中编写了这段代码,但它只运行一次。我究竟做错了什么 ?

new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
        @Override
        public void run() {
            getData();
        }
    }, 5000);

1 个答案:

答案 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并带有新的延迟。