2017-03-07 1 views
0

Ich habe eine Reihe von Anweisungen, die ausgeführt werden müssen wiederholt. Die Wiederholungsverzögerung ist Variable (die Verzögerung wird von einer Datei übernommen).Android mehrere Beiträge mit Verzögerung

Die Wiederholungszeit muss sehr genau präzise (Millisekunden Präzision) sein.

Ich habe versucht, einen Handler mit postDelayed zu verwenden, aber die Genauigkeit ist in der Zeit verloren. Dies geschieht, weil die Wiederholungsfrequenz mehr als 10 mal/Sekunde beträgt.

Jede Idee ist mehr als willkommen!

ist das Handler Beispiel:

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

Geben Sie Ihren Code mit Handler ein. Wird dieser Code ausgeführt, während Ihre App aktiv ist, oder befindet er sich möglicherweise im Hintergrund mit der Möglichkeit, Ihren Code aufzurufen, während das Gerät inaktiv ist? – Goran

+0

Aktualisiert der Handler eine Sicht? Ich schätze, das ist auf Haupt-Thread, oder? – Goran

+0

Was ist deine minSdkVersion? – Cochi

Antwort

0

Ich glaube nicht, dass es eine gute Idee, mit Handler ist, ist es mit vielen anderen Dingen in dem UI-Thread läuft in der Warteschlange zu tun, Sie das ist so nicht garantieren Runnable Code würde so genau ausgeführt werden.

Wenn Ihre Arbeit in der Runnable ist nur eine logische Aufgabe, die nicht in update UI.Consider mit einem Timer, um dies zu tun, aber sein, dass es auf einem getrennten Thread ausgeführt wird.

+0

Handler kann verwendet werden, ohne dass es sich auf dem Hauptthread (UI) befindet. – Goran

+0

Wie ich verstehe, ist der Handler genauer als der Java-Timer: http://stackoverflow.com/questions/20330355/titertask-or-handler –

Verwandte Themen