Android Timer: Verspätet im Vergleich zum Zeitplan

Bitte nicht zurückstellen, bitte nicht als Duplikat markieren und mir antworten! Ich brauche Dinge, die alle 200 Millisekunden erledigt werden müssen, und ich brauche sie, um glatt und gleichmäßig zu sein. Die Aufgabe ist mittelschwer (in beiden Fällen von Frage 1 und 2). Die Suche nach Timern scheint die beste Lösung für die Community zu sein: Verwenden Sie einen Handler, einen ausführbaren und einen postDelayed (), Android-Timer? Wie man).

Aktuelle Fragen:

-Welche Methode ist am genauesten und schnellsten, wenn ich mit der Benutzeroberfläche, postDelayed () oder schedule () / scheduleAtFixedRate () interagieren muss?

-Welche Methode ist am genauesten und schnellsten, wenn ich nicht mit der Benutzeroberfläche, postDelayed () oder schedule () / scheduleAtFixedRate () interagieren muss?

-Beide Möglichkeiten könnten auf dem Hauptprozess oder auf einem separaten Prozess ausgeführt werden? Wie

Vielen Dank. Ein Beispiel ...

Auf diese Weise habe ich die lokalen Objekte der Hauptklasse, aber ist es ein neuer Thread? Ist es eine gute Übung?

timer.schedule( new TimerTask() {           
        @Override
        public void run() {
                    textview.setText(str);
                    //other stuff            
                                     }
            }, 0, 200);

Der nächste ist ein anderer mit Zeitplan, die Aufgabe befindet sich in einer separaten Aufgabe, nicht der Zeitgeber selbst, und ich kann nicht direkt mit der Benutzeroberfläche interagieren, denke ich ...

timer.schedule( new aclass(), 0, 200);

Handler Weg (von Dave.B):

Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
    @Override
    public void run() {
        TextView.setText(str);
        // other stuff
        timerHandler.postDelayed(this, 500); }
};

@Override
public void onCreate(Bundle savedInstanceState) {
...
timerHandler.postDelayed(timerRunnable, 0);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage