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 № 1Wird 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.