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.
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.
Tags und Links android sdk android-broadcast