2017-03-07 6 views
0

を繰り返し実行する必要がある命令があります。 繰り返し遅延は変数です(遅延はファイルから取得されます)。複数の投稿が遅れているAndroid

繰り返し時間は、非常に(ミリ秒精度)でなければなりません。

私はpostDelayedでハンドラを使用しようとしましたが、正確さが失われています。これは、繰り返し回数が10回/秒を超えるために発生します。

これ以上のアイデアは歓迎されます!ここで

はハンドラの例です。私はそれがハンドラを使用して良いアイデアだとは思わない

new Runnable() { 
     @Override 
     public void run() {    
     mHandler.postDelayed(this, delay);    
     barometerResult.gotBarometer(barometerValueModelList.get(i).getBarometerValue());    
     } 
    }.run(); 
+0

ハンドラーを使用してコードを掲載してください。 あなたのアプリがアクティブな間にこのコードが実行されていますか、またはデバイスが非アクティブな状態でコードを呼び出している可能性があります。 – Goran

+0

ハンドラはビューを更新していますか?私はこれがメインスレッドで実行されていると思います。 – Goran

+0

minSdkVersionとは何ですか? – Cochi

答えて

0

、それはキューに行うには他の多くのものとUIスレッドで実行されるので、それはあなたを保証していません実行可能なコードは正確に実行されます。

Runnableでの作業が更新UIに含まれていないロジックタスクの場合は、タイマーを使用してそれを実行しますが、それは分離されたスレッド上で実行されることになります。

+0

ハンドラは、メイン(UI)スレッド上になくても使用できます。 – Goran

+0

私が理解しているように、ハンドラはjavaタイマーよりも正確です。 http://stackoverflow.com/questions/20330355/timertask-or-handler –

関連する問題