Можно ли проверить, была ли трансляция отправлена в липком режиме? Может ли он быть прерван/удален?
Можно ли проверить, была ли передача широковещания в липком режиме?
Можно ли полностью прервать/удалить липкую трансляцию? Если да, то можно ли это сделать как для обычных, так и для упорядоченных передач?
Ответ 1
В onReceive() вы можете использовать следующие вызовы:
isInitialStickyBroadcast() - Это скажет вам, была ли передача, которую вы сейчас обрабатываете, была отправлена как "липкая" и была текущей, когда был зарегистрирован BroadcastReceiver.
isOrderedBroadcast() - Это скажет вам, была ли передача, которую вы сейчас обрабатываете, была отправлена как "упорядоченная" трансляция.
Если вы просто хотите посмотреть, есть ли "липкая" трансляция, вы можете позвонить
и поставьте null как параметр receiver. Это вернет любую "липкую" трансляцию без фактической регистрации получателя.
Вы можете удалить липкую трансляцию, используя:
removeStickyBroadcast(Intent intent)
Однако ИМХО будет контрпродуктивным. Обычно "липкие" трансляции отправляются, чтобы указать текущее состояние. Поэтому удаление этого означает, что приложение не может определить текущее состояние.