Wie kann ich den HF stoppen?
Ich habe eine Frage .. habe ein Linkshänder in einer Aktivität in meiner Anwendung. Obwohl meine Aktivität zerstört die handler funktionieren noch. Es laufen auf verschiedenen anderer Prozess als die Anwendung Prozess ? Könnte jeder eine plz erklären, warum seine Arbeit so gerne ?
Ist es möglich den Anschlag der Hundeführer während onDestroy der Aktivität ?
Vielen Dank im Voraus.
InformationsquelleAutor der Frage Prasath | 2011-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie in der Dokumentation beschrieben
http://developer.android.com/reference/android/os/Handler.html
"Jeder Handler-Instanz ist verbunden mit einem einzigen thread und diesem thread eine Nachrichtenwarteschlange."
Wenn Sie beenden Ihre Tätigkeit, z.B. in
onDestroy()
Sie auch stornieren müssen den Rückruf für den Thread den er gestartet wurde:Können Sie tun, sogar ohne zu prüfen, ob runnable wurde bereits gefeuert, während Ihrer Tätigkeit aktiv war.
UPDATE:
Gibt es zwei weitere Fälle betrachtet werden:
1.) Sie implementiert haben Ihre Handler in einer Weise, dass Sie erstellt neue Klasse die Runnable, z.B.
In der Regel müssen Sie tun, wenn Sie haben zu beginnen, verzögert ausführbar mit dem aktuellen Satz von Parametern (das kann sich ändern, bis runnable feuert). Zu stornieren, müssen Sie es verwenden
2.) Wenn Sie mit inline-call (JPM danke für den Kommentar)
Dann brauchen Sie, um zu definieren, "was" Wert für die Nachricht. Später, wenn Sie brauchen, um es zu annullieren, die Sie verwenden können
um diese Aufgabe durchzuführen.
InformationsquelleAutor der Antwort Zelimir
meinst du, Sie haben einen thread irgendwo in Ihrer Tätigkeit? das anhalten eines Threads ist ganz einfach, Sie brauchen, um eine Referenz für diesen thread. wie:
und wenn Sie es beenden möchten, überprüfen Sie einfach, wenn die Referenz nicht null ist und die interrupt-call-Methode:
hoffe, es wird helfen,
InformationsquelleAutor der Antwort Alex
Ich mag Zelimir die Antwort, nur etwas mehr info über die Angelegenheit - Android nicht definieren Grenzen für eine Anwendung Leben, wird die Anwendung erstellt beim ersten start, und vielleicht bleibt lebendig zwischen mehreren Aktivitäten onCreate/onDestroy-Zyklen. Handler assoziiert sind mit der Anwendung eine einzige main-event-thread/queue, also eine Aktivität kann nicht "Stopp" (auch wenn Sie wohl tun könnte, dass über Handler.getLooper().beenden(), aber ich bin mir nicht sicher, ob es nicht zu Problemen führen. Auch Sie töten konnte ganze Anwendung, wie hier beschrieben,hier).
Wahrscheinlich Android-Konzepts ist die Wiederverwendung von Anwendungen, die Instanzen so viel wie möglich, so dass Ihr Hauptanliegen bei der Entwicklung einer Aktivität ordnungsgemäße Freigabe der Tätigkeit, die Ressourcen auf onDestroy nennen. Statische Variablen, threads, AsyncTasks und Nachrichten/callbacks-in-Handler sind die Elemente zu kümmern.
InformationsquelleAutor der Antwort Mixaz