2016-10-04 30 views
0

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

但我还希望在方法调用之间有500毫秒的延迟。我的意思是什么时候执行for循环。我怎样才能使用一个处理程序和可运行?如何在方法调用之间产生500毫秒的延迟?

回答

1

我将更新的index跨越Handler调用自己的价值,它就像for循环比较,以你count可变

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()

+0

非常欢迎:) –

相关问题