Відповіді:
Ось що говорить про Android SDKsendStickyBroadcast()
:
Виконайте "липкий" sendBroadcast (Намір), тобто намір, який ви надсилаєте, залишається після завершення трансляції, щоб інші могли швидко отримати ці дані через повернене значення registerReceiver (BroadcastReceiver, IntentFilter). У всіх інших способах це поводиться так само, як sendBroadcast (Намір).
Одним із прикладів липкої трансляції, що надсилається через операційну систему, є ACTION_BATTERY_CHANGED
. Коли ви закликаєте registerReceiver()
до цієї дії - навіть за допомогою null
BroadcastReceiver
-, ви отримуєте Intent
останню трансляцію цієї дії. Отже, ви можете використовувати це для пошуку стану акумулятора, не обов'язково реєструючи всі майбутні зміни стану акумулятора.
Типи : - Місцеві, Нормальні, Впорядковані та Клейкі
Звичайна трансляція
: - використовувати sendBroadcast ()
: - асинхронна трансляція
: - будь-який приймач отримує трансляцію не будь-якого конкретного замовлення
Замовлено трансляцію
: - використовувати sendOrderedBroadcast ()
: - синхронне мовлення
: - приймач приймає трансляцію в пріоритетній базі
: - ми також можемо просто перервати трансляцію такого типу
Місцева трансляція
: - використовувати лише тоді, коли трансляція використовується лише всередині того самого процесу
Липка трансляція
: - нормальний намір трансляції більше недоступний після того, як система його надіслала та обробила.
: - використовувати sendStickyBroadcast (Намір)
: - відповідний намір є липким, тобто намір, який ви надсилаєте, залишається навколо після завершення трансляції.
: - через це інші можуть швидко отримати ці дані через повернене значення registerReceiver (BroadcastReceiver, IntentFilter).
: - крім цього ж, що і sendBroadcast (Намір).
sendbroadcast()
- нормальне мовлення, але ми також можемо встановити пріоритет.
sendstickybroadcast()
- наміри, передані з цим, будуть дотримуватися майбутніх користувачів, які реєструються через код (динамічні приймачі). Трансляція, яка підтримуватиметься на android, буде повторно доставлена або повторно передана на майбутні запити від будь-яких приймачів широкомовної програми
Коли хтось надсилає клейку трансляцію з використанням, sendstickyBroadcast(intent);
тоді ця трансляція буде доступна для майбутніх користувачів, які використовують динамічні приймачі.
Але тепер не слід використовувати sendStickyBroadcast()
метод, який він застарів
З Документації на Android:
Цей метод був застарілий у рівні 21 API. Клейкі трансляції не слід використовувати. Вони не забезпечують ніякої безпеки (кожен може отримати до них доступ), ніякого захисту (будь-хто може змінювати їх) та багатьох інших проблем. Рекомендований зразок - використовувати неліпку трансляцію, щоб повідомити, що щось змінилося, з іншим механізмом для додатків, щоб отримати поточне значення, коли потрібно
Я сподіваюся, що це допомагає.