Android: Toast in einem Thread
Wie kann ich Toast Nachrichten von einem thread?
Kommentar zu dem Problem
Dieser beantworten Sie die Frage im detail.
diese Antwort geben die kürzeste Lösung: stackoverflow.com/a/18280318/1891118
InformationsquelleAutor der Frage Arutha | 2010-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es tun, durch aufrufen einer
Activity
'srunOnUiThread
Methode aus dem thread:InformationsquelleAutor der Antwort Lauri Lehtinen
Ich gerne eine Methode in meiner Tätigkeit als
showToast
die ich anrufen kann von überall...Ich dann am häufigsten nennen Sie es innerhalb
MyActivity
auf einen thread wie diesen...InformationsquelleAutor der Antwort mjaggard
Dies ist ähnlich zu anderen Antworten, aber aktualisiert für die neuen verfügbaren apis und viel sauberer. Auch, nicht davon aus, dass Sie in einer Aktivität Kontext.
InformationsquelleAutor der Antwort ChrisCM
Wie diese oder diese, mit einem
Runnable
zeigt, dass dieToast
.Nämlich,
InformationsquelleAutor der Antwort yanchenko
Einen Ansatz, der die Werke von so ziemlich überall, auch von Orten, wo Sie keinen
Activity
oderView
, ist schnappen Sie sich einenHandler
zu den Haupt-thread und zeigen Sie das toast:Der Vorteil dieses Ansatzes ist, dass es funktioniert mit jedem
Context
einschließlichService
undApplication
.InformationsquelleAutor der Antwort Mike Laren
Manchmal haben Sie Nachricht senden aus einem anderen
Thread
zum UI-thread. Diese Art von Szenario tritt auf, wenn Sie nicht durchführen kann, Netzwerk/IO-Operationen auf UI-thread.Folgende Beispiel behandelt das Szenario.
Runnable
auf UI-thread. So veröffentlichen Sie IhreRunnable
an-handler aufHandlerThread
Runnable
aus und senden Sie es zurück zum UI-thread und zeigen eineToast
Nachricht.Lösung:
HandlerThread
:requestHandler
responseHandler
und überschreibenhandleMessage
Methodepost
eineRunnable
Aufgabe aufrequestHandler
Runnable
Aufgabe, rufen SiesendMessage
aufresponseHandler
sendMessage
Ergebnis AufrufhandleMessage
imresponseHandler
.Message
- und Prozess-it, update UIBeispielcode:
Nützliche Artikel:
handlerthreads-und-warum-Sie-soll-sein-verwenden-Sie-in-your-android-apps
android-looper-handler-handlerthread-ich
InformationsquelleAutor der Antwort Ravindra babu
handler.sendMessage();
post()
Methodehandler.post();
runOnUiThread()
view.post()
InformationsquelleAutor der Antwort Kerwin You
Können Sie
Looper
zu sendenToast
Nachricht. Gehen Sie durch diesen link für mehr details.und es heißt in deinem thread. Context kann
Activity.getContext()
immer von derActivity
Sie müssen den toast.InformationsquelleAutor der Antwort Vinoj John Hosan
Ich ist dieser Ansatz basiert auf mjaggard Antwort:
Gut für mich gearbeitet.
InformationsquelleAutor der Antwort Angelo Polotto