如何使用处理程序定期调用多个方法?

时间:2016-10-04 02:29:41

标签: android runnable android-handler

我知道如何使用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毫秒的延迟重复相同的事情。

但我也想在方法调用之间延迟500ms。我的意思是执行for循环。我怎么能只用一个处理程序和runnable呢?如何在方法调用之间产生500ms的延迟?

1 个答案:

答案 0 :(得分:1)

我会自己在index个调用中更新Handler的值,并将其与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()