Ich bin neu in der Android-Entwicklung. Ich arbeite seit einigen Jahren an Swing und SWT. Sowohl Swing als auch SWT verfügen über eine Strategie, Code in der Synchronisierung von Benutzeroberflächenthreads und Async auszuführen. Die typische Verwendung besteht darin, Mitarbeiter mit Zeitaufwand in einem Thread zu verwenden und dann das Ergebnis im Async-Thread für die Benutzeroberfläche anzuzeigen.
Also meine Frage ist, gibt es ähnliche Stratege in Android? Hier ist mein Code. Der Parameter Runnable ist ein zeitaufwendiger Code. Diese Methode zeigt während der Ausführung einen wartenden Dialog an, dann EXPECT, um nach Abschluss einen Toast anzuzeigen. Aber der Toast muss im UI-Thread angezeigt werden. Also, wie geht das?
%Vor%Und gibt es ein paar Worte zum Android-UI-System? Wie ist es Thread-Safe, wie Thread zusammen arbeitet und so weiter. Vielen Dank!
Dafür gibt es mehrere Möglichkeiten,
AsyncTask ermöglicht die ordnungsgemäße und einfache Verwendung des UI-Threads. Diese Klasse ermöglicht es, Hintergrundoperationen durchzuführen und Ergebnisse auf der Benutzeroberfläche zu veröffentlichen Thread, ohne Threads und / oder Handler manipulieren zu müssen.
Example for using AsyncTask
Ein Service ist eine Anwendungskomponente, die entweder ein Wunsch der Anwendung, einen länger andauernden Betrieb durchzuführen, während dies nicht der Fall ist Interaktion mit dem Benutzer oder Bereitstellung von Funktionalität für andere Anwendungen zu verwenden.
Example for Using Service.
IntentService ist eine Basisklasse für Dienste, die asynchron arbeiten Anfragen (ausgedrückt als Intents) auf Anfrage. Clients senden Anfragen durch startService (Intent) -Aufrufe; der Dienst wird nach Bedarf gestartet, Behandelt jede Absicht nacheinander mit einem Arbeitsthread und stoppt sich selbst wenn es keine Arbeit mehr hat.
Example for using IntentService.
Wenn Sie mit einem separaten Thread arbeiten, der nicht Ihr UI-Thread ist, verwenden Sie am besten Handler. Wann immer Sie den Benutzer von Ihrem Thread aus vertraut machen wollen, nehmen Sie einen Fortschritt an und senden Sie eine Nachricht an Handler. Inside Handler können Sie Nachrichten verarbeiten und ein Code-Snippet schreiben, um Änderungen an der Benutzeroberfläche vorzunehmen. Dies ist der bevorzugte Weg für Android. Siehe diese link1 , link2 & amp; link3
Sie verwenden diese AsynTask als innere Klasse Ihrer Aktivität. Im Hintergrund tun Sie die zeitraubende Aufgabe, die Sie tun möchten, und dann in postexecute können Sie die Textnachricht zeigen. Ruf dies von deiner Haupttätigkeit an
%Vor%Der Schmerzfreie Threading-Artikel von den Android-Entwickler-Ressourcen bietet verschiedene Alternativen je nach spezifische SDK-Version.
Tags und Links android android-asynctask ui-thread