2015-01-28 18 views
8

Istnieje wiele przykładów na StackOverflow i gdzie indziej, które używają klasy LocalBroadcastManager, aby uniknąć emisji zdarzeń poza aplikacją.Odpowiednik LocalBroadcastManager bez biblioteki pomocy Androida

Jednak ta klasa używa biblioteki pomocy Androida, jak pokazano w nazwie pakietu: android.support.v4.content.LocalBroadcastManager.

Czy istnieje standardowy odpowiednik LocalBroadcastManager w standardowym pakiecie SDK, który nie korzysta z biblioteki pomocy Androida?

Nie wydaje się, że metoda sendBroadcast w android.content.Context ma taki rodzaj szczegółowości zabezpieczeń.

Odpowiedz

2

Nie, nie istnieje. Jeśli chcesz odtworzyć tę klasę, możesz odczytać kod źródłowy, aby zaimplementować siebie bez korzystania z biblioteki pomocy technicznej. W każdym razie, jaki jest problem z używaniem biblioteki wsparcia? jest lekki.

Nieco obejść można używać normalnego BroadCastReceiver i umieścić <android:exported="false"> na swoim manifeście, wewnątrz tego odbiornika, to unikać innych aplikacji wysłać intencje, więc fałszujesz lokalnego odbiornika.

Uwaga: Powiedziałem udaje, bo LocalBroadcastManager ma optymalizacje, by nie szerzyć zamiar systemu ...

nadzieję, że to pomaga.

+1

Właściwie doszedłem do tego samego wniosku po przeczytaniu kodu źródłowego LocalBroadcastManager i po lepszym zrozumieniu racjonalności związanej z bibliotekami wsparcia Androida. W każdym razie dzisiaj użyłbym czegoś takiego jak EventBus. –