1

Viewクラスで 1 秒ごとに何かを描画するようにしたいので、 and を使用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で正確に固定されたレートでメソッドを呼び出すにはどうすればよいですか?

4

1 に答える 1

0

このように呼んでみてください:

t.scheduleAtFixedRate(timerTask, 0, 1000);

また、postInvalidate();を確認する必要があります。メソッドの実行には1秒以上かかりません。

于 2012-12-07T23:10:03.783 に答える