1

我想让我的View班级每 1 秒绘制一次,因此我使用了Timertaskand Timer,这是我的代码:

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 中以完全固定的速率调用方法?

4

1 回答 1

0

尝试这样称呼它:

t.scheduleAtFixedRate(timerTask, 0, 1000);

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

于 2012-12-07T23:10:03.783 回答