Entspricht LocalBroadcastManager ohne Android-Unterstützungsbibliothek

8

Es gibt viele Beispiele in StackOverflow und anderswo, die die Klasse LocalBroadcastManager verwenden, um die Übertragung von Ereignissen außerhalb einer App zu vermeiden.

Diese Klasse verwendet jedoch die Android-Unterstützungsbibliothek, wie im Paketnamen angezeigt: android.support.v4.content.LocalBroadcastManager .

Gibt es ein Äquivalent von LocalBroadcastManager im Standard-SDK, das die Android-Unterstützungsbibliothek nicht verwendet?

Es scheint nicht, dass die Methode sendBroadcast in android.content.Context diese Art von Sicherheitsgranularität hat.

    
Vincent Hiribarren 28.01.2015, 09:57
quelle

1 Antwort

2

Nein, es existiert nicht. Wenn Sie diese Klasse neu erstellen möchten, können Sie den Quellcode lesen, um sich selbst zu implementieren, ohne die support lib zu verwenden. Wie auch immer, was ist das Problem mit der Support-Bibliothek? es ist leicht.

Eine kleine Problemumgehung könnte darin bestehen, den normalen BroadCastReceiver zu verwenden und <android:exported="false"> zu aktivieren Ihr Manifest, innerhalb dieses Receivers, vermeiden Sie, dass andere Apps Ihnen Absichten schicken, also fälschen Sie einen lokalen Empfänger.

Hinweis: Ich habe gefälscht, weil der LocalBroadcastManager Optimierungen hat, indem er die Absicht nicht auf das System verteilt ...

Hoffe, das hilft.

    
Sulfkain 26.06.2015, 15:01
quelle

Tags und Links