Я встретил этот термин в документации по Android с сопутствующим определением
Это широковещательные рассылки, данные которых хранятся в системе после завершения, чтобы клиенты могли быстро получить эти данные, не дожидаясь следующей трансляции.
Что это означает? Может ли кто-нибудь пояснить его использование на конкретном примере? Я считаю, что мы должны запросить разрешение на использование этого намерения? Почему так?
<uses-permission android:name="android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.
android
android-intent
Шувик
источник
источник
Sticky broadcasts should not be used. They provide no security (anyone can access them), no protection (anyone can modify them), and many other problems. The recommended pattern is to use a non-sticky broadcast to report that something has changed, with another mechanism for apps to retrieve the current value whenever desired.
Ответы:
Если Activity вызывает
onPause
обычную трансляцию, получение трансляции может быть пропущено. Прилипшую трансляцию можно проверить после ее запускаonResume
.Обновление 23.06.2020
Прикрепленные трансляции устарели.
См.
sendStickyBroadcast
Документацию .Воплощать в жизнь
Intent intent = new Intent("some.custom.action"); intent.putExtra("some_boolean", true); sendStickyBroadcast(intent);
Ресурсы
Связанное сообщение: В чем разница между sendStickyBroadcast и sendBroadcast в Android?
См. Также
removeStickyBroadcast(Intent)
API уровня 5 +isInitialStickyBroadcast()
для использования в приемникеonReceive
.источник
sendStickyBroadcast()
выполняет такsendBroadcast(Intent)
называемое закрепление, то есть отправляемое вами намерение остается после завершения трансляции, чтобы другие могли быстро получить эти данные с помощью возвращаемого значенияregisterReceiver(BroadcastReceiver, IntentFilter)
. Во всем остальном ведет себя так же, какsendBroadcast(Intent)
. Одним из примеров липкой трансляции, отправляемой через операционную систему, являетсяACTION_BATTERY_CHANGED
. Когда вы вызываетеregisterReceiver()
это действие - даже с нулевым значениемBroadcastReceiver
- вы получаете последнее намерение, которое транслировалось для этого действия. Следовательно, вы можете использовать это для определения состояния батареи без обязательной регистрации всех будущих изменений состояния батареи.источник
Значение прикрепленной трансляции - это значение, которое было последней рассылкой и в настоящее время хранится в прикрепленном кэше. Это не стоимость трансляции, полученной прямо сейчас. Я полагаю, вы можете сказать, что это похоже на куки-файл браузера, к которому вы можете получить доступ в любое время. Прикрепленная трансляция теперь устарела, согласно документации для методов прикрепленной трансляции ( например ):
источник
Нормальное широковещательное намерение больше не доступно после того, как оно было отправлено и обработано системой. Если вы используете метод sendStickyBroadcast (Intent), Intent является липким, то есть отправляемое Intent остается после завершения трансляции.
вы ссылаетесь на мой блог: введите здесь описание ссылки
источник