Ich habe EventBus für die Nachrichtenübertragung zwischen asynchronen und UI-Thread verwendet, gibt es etwas Aufmerksamkeit?Wenn ich Android-Anwendungen entwickle, unter welchen Szenarien sollte ich EventBus verwenden?
Antwort
Sie können das gleiche über Schnittstellen erreichen.
Es hängt wirklich total vom Szenario ab, im Falle einer engen Kopplung, wo viele Klassen voneinander abhängig sind, sollten Sie Event Bus verwenden.
Nehmen wir an, Sie haben eine Aktivität, die ein Fragment A hostet, und Fragment A enthält ein weiteres Fragment B, und auf Knopfdruck in Fragment B möchten Sie kommunizieren, mit der Aktivität können Sie es tun, durch Verwendung der Schnittstelle, aber die Klassen sind stark gekoppelt und Sie müssen die Implementierung von Activity zu Fragment A zu Fragment B übergeben.
Es wäre viel einfacher, wenn Sie Ereignis Bus in diesem Szenario verwenden.
Nun betrachten Sie eine Situation, in der Aktivität nur ein Fragment hostet und Sie zwischen diesen beiden kommunizieren möchten. In diesem Fall wäre eine Schnittstelle eine gute Wahl. Event Bus hier zu verwenden, wird keine gute Entscheidung sein, da es alle registrierten Indexklassen durchläuft und dann an die abonnierte Methode schreibt.
EventBus ist eine Bibliothek im Android Studio. Ich denke, es ist für Sie, eine Nachricht von einer Klasse an eine andere oder mehr Klassen zu übergeben. Hoffe das beantwortet deine Frage.
- 1. Welchen Fehlerwert sollte ich verwenden?
- 2. Welchen sollte ich unter Federschuh, Federstück und Feder IO verwenden?
- 3. Welchen Windows SVN Server sollte ich verwenden?
- 4. Welchen Wortstammer sollte ich in nltk verwenden?
- 5. Welchen Wert des Backlogs sollte ich verwenden?
- 6. Sollte ich zuerst POM oder MANIFEST zuerst verwenden, wenn ich eine OSGi-Anwendung mit Maven entwickle?
- 7. API für Entwickler. Welchen Content-Typ sollte ich verwenden?
- 8. Welchen Namespace sollte ich für ein XML-Schema verwenden?
- 9. Skpsmpsmessage: welchen Server sollte ich für Google Mail verwenden
- 10. Welchen Speicher sollte ich für ein Outlook-Plugin verwenden?
- 11. Unterschied zwischen getcwd() und dirname (__ FILE__)? Welchen sollte ich verwenden?
- 12. Welchen Mime-Typ sollte ich für den BASIC-Code verwenden?
- 13. Warum sollte ich WndProc verwenden, wenn ich Formularereignisse habe?
- 14. Welchen RSS Parser sollte ich in PHP verwenden?
- 15. Welchen Variablentyp sollte ich zum Speichern eines Bildes verwenden?
- 16. Welchen STL-Container sollte ich für einen FIFO verwenden?
- 17. Oracle: Abfrage mit 'N'-Funktion - Welchen Datentyp sollte ich verwenden?
- 18. Welchen Cache sollte ich in Memory in Azure-Umgebung verwenden
- 19. Welchen Datentyp sollte ich für IETF-Sprachcodes verwenden?
- 20. Welchen Doctype sollte ich für GWT 2.0 verwenden?
- 21. Welchen booleschen Typ sollte ich in iOS/Objective-C verwenden?
- 22. Welche Programmiersprache, welchen Algorithmus sollte ich für die Wörterbuchübersetzung verwenden?
- 23. Welchen Datentyp sollte ich verwenden, um Geldwerte zu speichern?
- 24. Cross Compiling Ghostscript für Android, welchen Host sollte ich verwenden?
- 25. Welchen Microdata Parser sollte ich in Python verwenden?
- 26. Welchen Doctype sollte ich für eine mobile Website verwenden?
- 27. Welchen Typ sollte ich für ein 2-dimensionales Array verwenden?
- 28. ASP.NET: Welchen Vorteil, wenn ich mit verwenden, wenn ein Objekt
- 29. Welchen Controller soll ich verwenden?
- 30. Wenn ich UUIDs verwende, sollte ich auch AUTO_INCREMENT verwenden?
Wir können das gleiche über die Schnittstelle erreichen, aber was ist die Unterscheidung zwischen zwei Möglichkeiten? – CallenChen