Odpowiedzi:
Oto, o czym mówi Android SDKsendStickyBroadcast()
:
Wykonaj sendBroadcast (Intent), który jest „sticky”, co oznacza, że intencja, którą wysyłasz, pozostaje po zakończeniu transmisji, dzięki czemu inni mogą szybko odzyskać te dane za pomocą wartości zwracanej przez registerReceiver (BroadcastReceiver, IntentFilter). Pod każdym innym względem zachowuje się tak samo jak sendBroadcast (Intent).
Jednym z przykładów przyklejonej transmisji wysyłanej przez system operacyjny jest ACTION_BATTERY_CHANGED
. Kiedy wzywasz registerReceiver()
do tego działania - nawet z null
BroadcastReceiver
- otrzymujesz komunikat, Intent
który był ostatnio nadawany dla tej akcji. W związku z tym można go użyć do znalezienia stanu baterii bez konieczności rejestrowania wszystkich przyszłych zmian stanu baterii.
Rodzaje : - Lokalne, Normalne, Uporządkowane i Lepkie
Normalna transmisja
: - użyj sendBroadcast ()
: - emisja asynchroniczna
: - dowolny odbiornik odbiera audycje, a nie w określonej kolejności
Zamówiona transmisja
: - użyj sendOrderedBroadcast ()
: - emisja synchroniczna
: - odbiornik odbiera audycje w bazie priorytetów
: - możemy też po prostu przerwać nadawanie tego typu
Transmisja lokalna
: - używaj tylko wtedy, gdy rozgłaszanie jest używane tylko w tym samym procesie
Sticky Broadcast
: - normalne zamiary emisji nie są już dostępne po wysłaniu i przetworzeniu przez system.
: - użyj sendStickyBroadcast (Intent)
: - odpowiednia intencja jest lepka, co oznacza, że intencja, którą wysyłasz, pozostanie w pobliżu po zakończeniu transmisji.
: - z tego powodu inni mogą szybko pobrać te dane poprzez wartość zwracaną przez registerReceiver (BroadcastReceiver, IntentFilter).
: - poza tym samym co sendBroadcast (Intent).
sendbroadcast()
- normalna transmisja, ale możemy też ustawić priorytet.
sendstickybroadcast()
- zamiar przekazany wraz z tym będzie trzymany dla przyszłych użytkowników, którzy rejestrują się za pomocą kodu (odbiorniki dynamiczne). Transmisja, która pozostanie z Androidem i zostanie ponownie dostarczona lub ponownie nadana do przyszłych żądań z dowolnych odbiorników transmisji
Kiedy ktoś wyśle stałą transmisję za pomocą, sendstickyBroadcast(intent);
wtedy ta transmisja będzie dostępna dla przyszłych użytkowników korzystających z dynamicznych odbiorników.
Ale teraz nie powinieneś używać sendStickyBroadcast()
metody, która jest przestarzała
Z dokumentacji systemu Android:
Ta metoda została wycofana na poziomie interfejsu API 21. Nie należy używać emisji trwałych. Nie zapewniają żadnych zabezpieczeń (każdy ma do nich dostęp), żadnej ochrony (każdy może je modyfikować) i wielu innych problemów. Zalecanym wzorcem jest użycie nieprzywierającej transmisji, aby zgłosić, że coś się zmieniło, z innym mechanizmem dla aplikacji do pobierania bieżącej wartości w dowolnym momencie
Mam nadzieję, że to pomoże.