Подтвердить что ты не робот

Различия между различными типами трансляций в android

Я немного смущен документацией о различных типах отправки трансляций в Android. Например, есть sendStickyBroadcast(), sendBroadcast(), sendOrderedBroadcast() и sendStickyOrderedBroadcast().

В чем разница между липкой, нормальной и упорядоченной трансляцией?

4b9b3361

Ответ 1

Вы можете сравнить липкую трансляцию с запиской. Кто-то отправляет его, и вы можете читать, когда вы проходите мимо/запускаете приложение - независимо от того, когда он был отправлен.

Закаленное вещание похоже на передачу заметки - оно передается от человека/приложения к человеку/приложению. В любом месте в цепочке получатель может выбрать, чтобы отменить трансляцию, не дожидаясь, пока остальная часть цепи не увидит ее.

Обычная широковещательная передача. ну, просто посылает всем, кто разрешил и зарегистрировал ее для прослушивания.

Существует вариант трансляций, разрешающих приемникам, зарегистрированным в запущенном приложении, прослушивать их, т.е. приемник в вашем AndroidManifest.xml запускает not для этих целей.

Ответ 2

Обычные широковещательные рассылки: - Обычные трансляции (отправленные с Context.sendBroadcast) полностью асинхронны. Все приемники широковещательной передачи выполняются в порядке undefined, часто в одно и то же время. Это более эффективно, но означает, что приемники не могут использовать результат или прервать API, включенные здесь.

Заказываемые широковещательные рассылки: - упорядоченная широковещательная рассылка - это тип широковещательной передачи, которая отправляется синхронно, то есть один за другим для каждого слушателя.

Метод Android sendOrderedBroadcast относится к классу Context для Android, целью этого метода является передача на прослушивание приемников сериализованным образом и получение результата обратно к вызывающей активности. Я долго искал что-то вроде Android sendOrderedBroadcast, но не смог его найти. Другим ключевым преимуществом sendOrderedBroadcast является то, что мы можем установить приоритет BroadcastReceiver. Таким образом, все трансляторы BroadcastReceivers, прослушивающие эту конкретную широковещательную рассылку, получат определенную передачу в упорядоченном виде. Теперь, когда мы получаем широковещательные передачи упорядоченным способом, может существовать случай, когда вы хотите прервать поток приемников, угадать, что даже это можно сделать, abortBroadcast().

Липкие трансляции: - Липкая широковещательная передача - это трансляция, которая сохраняется после того, как будет объявлена ​​система. Большинство трансляций отправляются, обрабатываются внутри системы и становятся быстро недоступными. Однако Sticky Broadcasts объявляет информацию, которая остается доступной за пределами того момента, когда они обрабатываются. Типичным примером является уровень широковещательной передачи батареи. В отличие от большинства трансляций, уровень заряда батареи можно получить в приложениях за пределами точки, в которой он был отправлен через систему. Это означает, что приложения могут узнать, какой была последняя передача на уровне батареи.