2012-03-24 43 views
2

我有这段代码,我想运行Log.d每1000 milis,但它只运行一次。为什么Handler,Timer只能运行一次?

seekView.postDelayed(new Runnable() { 

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

       } 
      }, 1000); 

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

回答

5

使其保持在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秒的间隔自我调用。

3

使用重复:

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

... 
new Timer().scheduleAtFixedRate(new YourTimerTask(), after, interval); 
... 
相关问题