android:Timer.scheduleAtFixedRate(),速率不固定?

时间:2012-12-07 22:09:42

标签: android android-emulator timer timertask

我想让我的View课每1秒画一些东西,因此我使用了TimertaskTimer,这是我的代码:

private TimerTask timerTask;
private Timer t = new Timer();
public void dataEmitter(){
    timerTask = new TimerTask(){
        @Override
        public void run() {
            postInvalidate();
        }
    };
    t.scheduleAtFixedRate(timerTask, 2000, 1000);
}

但后来我发现即使重复调用此方法,但它不是固定速率。有时它非常快,但有时它很慢。所以我想知道这是否只发生在模拟器上?如果没有,我如何在Android中以完全固定的费率调用方法?

1 个答案:

答案 0 :(得分:0)

尝试这样称呼:

t.scheduleAtFixedRate(timerTask, 0, 1000);

你还必须确保postInvalidate();方法执行时间不会超过1秒。