/ / Android, Instanziieren von Instanzvariablen, welcher Thread? - Android, Multithreading, Handler, Android-Fortschrittsbalken

Android, Instanziierungsinstanzvariablen, welcher Thread? - Android, Multithreading, Handler, Android-Fortschrittsbalken

Alle:

Ich untersuche Code mit einem Handler, der zusammen mit anderen Instanzvariablen deklariert und instanziiert wird:

public class SomeActivity extends Activity {
Handler handler = new Handler();  // What thread is this taking place on?
// rest of class omitted
}

Wird es auf dem UI-Thread instanziiert? Ich hoffe es, weil es verwendet wird, um ein Runnable in einer ProgressBar zu veröffentlichen, und nach meinem Verständnis sollte die ProgressBar nur auf dem UI-Thread bearbeitet werden.

Die Android-Dokumente sagen, dass etwas in onCreate () erstellt wurde:

Die Aktivitäten einer Anwendung laufen auf derAnwendungs-UI-Thread. Einmal Die Benutzeroberfläche wird instanziiert, z. B. in der Aktivität "onCreate ()" Methode müssen alle Interaktionen mit der Benutzeroberfläche im UI-Thread ausgeführt werden. "

aber das passiert vor onCreate ().

Danke für jede Info,

Michael

Antworten:

0 für die Antwort № 1

Wird es auf dem UI-Thread instanziiert?

Ja. Ein Handler existiert in dem Thread, in dem er erstellt wurde. Sie erstellen Ihre Datei auf dem Haupt- / UI-Thread, sodass sie auf UI-Elemente zugreifen kann.

aber das passiert vor onCreate ().

Dies zeigt an, auf welchen Thread der Handler läuft.


0 für die Antwort № 2

Alles geschieht auf dem Hauptthread (auch als UI-Thread bezeichnet), es sei denn, Sie führen es speziell in einem Hintergrundthread aus. Also, Ihr Handler wird im UI-Thread erstellt.