为什么Handler,Timer只运行一次?

时间:2012-03-24 09:31:56

标签: android

我有这个代码,我想每1000 mil运行一次Log.d,但它只运行一次。

seekView.postDelayed(new Runnable() {

                public void run() {
                    Log.d("WWWW", "www");

                }
            }, 1000);

创建处理程序,计时器,...只运行一次这样,我的问题在哪里?

2 个答案:

答案 0 :(得分:7)

要让它以1秒的间隔持续运行,您需要再次将 postDelayed 作为运行方法嵌套。请参阅以下示例:

seekView.postDelayed(new Runnable() {

  public void run() {
    Log.d("WWWW", "www");

    //calling postdelayed again
    seekView.postDelayed(this, 1000);       //added this line
  }
}, 1000);

这样做会让它以1秒的间隔自我调用。

答案 1 :(得分:3)

用于重复:

 ... 
class YourTimeTask extends TimerTask {
   public void run() {
    ....
   }
}

...
new Timer().scheduleAtFixedRate(new YourTimerTask(), after, interval);
...