Ответы:
Вот что говорит Android SDKsendStickyBroadcast()
:
Выполните sendBroadcast (Intent), который является «липким», то есть намерение, которое вы отправляете, остается после завершения трансляции, чтобы другие могли быстро получить эти данные с помощью возвращаемого значения registerReceiver (BroadcastReceiver, IntentFilter). Во всем остальном это ведет себя так же, как sendBroadcast (Intent).
Одним из примеров липкой трансляции, отправляемой через операционную систему, является ACTION_BATTERY_CHANGED
. Когда вы вызываете registerReceiver()
это действие - даже с помощью null
BroadcastReceiver
- вы получаете Intent
последнюю трансляцию для этого действия. Следовательно, вы можете использовать это для определения состояния батареи без обязательной регистрации всех будущих изменений состояния батареи.
Типы : - локальный, нормальный, упорядоченный и липкий
Обычная трансляция
: - использовать sendBroadcast ()
: - асинхронная трансляция
: - трансляцию принимает любой приемник, а не какой-то определенный порядок
Заказанная трансляция
: - использовать sendOrderedBroadcast ()
: - синхронная трансляция
: - приемник принимает трансляцию в приоритетной базе
: - мы также можем просто прервать трансляцию в этом виде
Местное вещание
: - использовать, только если трансляция используется только внутри одного процесса
Липкая трансляция
: - нормальное широковещательное намерение больше не доступно после того, как оно было отправлено и обработано системой.
: - использовать sendStickyBroadcast (намерение)
: - соответствующее намерение является липким, то есть отправляемое вами намерение остается в силе после завершения трансляции.
: - из-за этого другие могут быстро получить эти данные через возвращаемое значение registerReceiver (BroadcastReceiver, IntentFilter).
: - кроме sendBroadcast (Intent).
sendbroadcast()
- обычная трансляция, но мы можем установить и приоритет.
sendstickybroadcast()
- намерение, переданное с этим, будет закреплено для будущих пользователей, которые регистрируются с помощью кода (динамические приемники). Трансляция, которая останется на Android, будет повторно доставляться или ретранслироваться по будущим запросам от любых широковещательных приемников.
Когда кто-то отправляет липкую трансляцию с использованием, sendstickyBroadcast(intent);
эта трансляция будет доступна для будущих пользователей, использующих динамические приемники.
Но теперь вы не должны использовать sendStickyBroadcast()
метод, который устарел
Из документации Android:
Этот метод устарел на уровне API 21. Прикрепленные широковещательные рассылки использовать не следует. Они не обеспечивают безопасности (любой может получить к ним доступ), никакой защиты (любой может их изменить) и многих других проблем. Рекомендуемый шаблон - использовать неприлипающую трансляцию, чтобы сообщить, что что-то изменилось, с другим механизмом, позволяющим приложениям получать текущее значение в любое время.
Надеюсь, это поможет.