纠正处理程序后延迟时间

时间:2014-04-11 08:43:10

标签: android runnable

我正面临着在特定时间执行某些事情的问题。我的应用程序有一个Runnable类,可以在特定时间执行方法。问题是有时Runnable需要4000毫秒而不是3000毫秒才能执行。有没有办法纠正这个?

代码:

private Handler myhandler;

//onCreateMethod
myhandler = new Handler();


//runnable class        
    private Runnable myRunnable = new Runnable() {
        public void run() {     
            methodToExecute();
            myhandler.postDelayed(this, 3000);  
                     }
                 };

2 个答案:

答案 0 :(得分:2)

如果您需要更高的精度,请不要使用Handler.postDelayed,而是使用Timer

无论如何,正如评论中所述,android不是实时操作系统,但你应该获得更高的精度,比如2900到3100毫秒。

例如:

Timer.schedule(timerTask, 3000);

答案 1 :(得分:0)

似乎它适用于Timer(感谢@Yves Delerm):

如果某人有一天需要它,这是解决方案:

private Timer myTimer;
private int TIMERINTERVAL = 3000;

// inside onCreate
myTimer = new Timer();
myTimer.schedule(new TimerTask()
{
    @Override
    public void run()
    {
        myMethod();
    }}, 0, TIMERINTERVAL);



 private void myMethod()
 {
      // Some code
 }