LocalBroadcastManager vs. Rückrufe verwenden

8

Das Android-Kompatibilitätspaket unterstützt LocalBroadcastManager, mit dem Sendungen innerhalb meines Prozesses gesendet werden können. Ссылка

Bis jetzt verwendete ich Callbacks (Schnittstellen ähnlich wie OnClickListener), um Daten (asynchron und synchron) zwischen verschiedenen Teilen meiner Apps zu übertragen.

Ich habe mich gefragt, ob einer besser ist als der andere. Irgendwelche Meinungen?

    
dors 19.12.2012, 09:01
quelle

2 Antworten

6

LocalBroadcastManager lässt Sie Intent s und IntentFilter verwenden, damit es einfacher ist, von systemweiten Übertragungen zu lokalen Übertragungen zu wechseln. Es hat auch einen Warteschlangencode und ist möglicherweise zuverlässiger als Ihr eigener Code (oder nicht, je nachdem, wie ausgeklügelt Ihre Implementierung ist). Abgesehen davon speichert es im Grunde nur Listen von Empfängern im Speicher und iteriert sie, um eine Übereinstimmung zu finden.

Alternativ können Sie einen Event-Bus wie den Otto von Square verwenden (basierend auf Guava), der Typsicherheit und -sicherheit hinzufügt genauso effizient.

    
Nikolay Elenkov 19.12.2012, 09:18
quelle
1

Soweit ich weiß, funktioniert LocalBroadcastManager wie ein Zauber. Es ist stressfrei und Sie können jedes Argument innerhalb der Absicht übergeben und es während des Hörens zurückholen. Die einzige Zuverlässigkeit ist, dass der Broadcast-Manager die Absicht in die Warteschlange stellt.

Wann sollten Sie LocalBroadCastManager verwenden? Wenn Sie einzelne Aktivität (FragmentActivity) und Tonnen von Fragment-Klassen haben, ist es einfacher, einen lokalen BroadcastManager innerhalb der einzelnen Aktivität zu haben.

Wenn Sie viele Aktivitäten haben, kann es hilfreich sein, dies zu verwenden. Beachten Sie aber auch, dass Sie Intents bereits verwenden, um neue Aktivitäten zu starten. Wenn also eine ausstehende Absicht vorliegt, befindet sich diese Übertragung in der Warteschlange und Sie muss warten.

Die beste Anwendung ist also Single Activity mit zahlreichen Fragmenten.

    
zIronManBox 10.04.2014 07:29
quelle