Android BroadcastReceiver oder einfache Rückrufmethode?

In meinen Projekten verwende ichBroadcastReceivers als Rückruf von einem lange laufenden Thread (z. B. Benachrichtigung der Aktivität, dass ein Download abgeschlossen wurde, und Senden einiger Antwortdaten von einem WorkerThread damit die Aktivität dem Benutzer die entsprechende Nachricht anzeigen kann ..). BenutzenBroadcastReceivers Ich muss darauf achten, den Rundfunkempfänger bei jeder Verwendung zu registrieren und die Registrierung aufzuheben. Außerdem muss ich darauf achten, welche Nachrichten speziell gesendet werden sollen, wenn ich diese Methode für andere Aktionen verwende (z. B. Herunterladen, Aufrufen von WebServices usw.). ). Und um benutzerdefinierte Objekte durch Broadcasts Absicht zu senden, muss ich auch die Objekte erstellenParcelable.

Im Gegensatz zu diesem Ansatz habe ich auch den Callback-Methoden-Ansatz gesehen, der einfacher zu sein scheint als die Methode, die ich verwende. Callback-Methoden sind einfache Implementierung von Schnittstellenmethoden, mit denen derselbe Effekt erzielt werden kann wie mit dem BroadcastRecaiver in App Messaging. Dieser Ansatz benötigt keine Parcelable-Implementierung, um komplexe Objekte zurückzugeben, und verwendet keine Schlüssel wieBroadcastReceiver.. Ich denke, der schlechte Teil ist, dass ich das Callback-Objekt auf Nullwert überprüfen muss, bevor ich eine Callback-Methode aufrufen möchte .. und auch sicherstellen muss, dass ich den Code aus der Implementierung auf dem UI-Thread ausführe, damit ich aktualisieren kann die Benutzeroberfläche ohne Fehler.

Ok, ich hoffe du hast verstanden was ich sagen wollte :).

Die Frage ist nun, ob Sie der Meinung sind, dass die Rückrufmethode besser (leichter, sauberer, schneller ...) ist als dieBroadcastReceiver Ansatz, wenn nur innerhalb einer einzigen Anwendung verwendet werden? (Beachten Sie, dass ich kein Android verwendeService für die Hintergrundarbeit .. nurAsyncTask undThreads)

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage