Intereting Posts
Почему мы используем TaskStackBuilder? Android Studio – Robolectric: android.content.res.Resources $ NotFoundException: нет такой метки com.my.app:string/app_name AVD недействителен. Конфигурация изменилась с момента создания AVD в Intellij IDEA 13 Как отправить строку с помощью NFC с телефона Windows 8 на устройство Android Связывание с данными: привязка одного метода от слушателя с помощью нескольких методов Отображение файла MS Word в представлении (например, TextView) на Android Производительность обработки в Android Как установить переключатель в Android Realm findFirst () метод возвращает null StartService из класса, который не расширяет действие W / ResourceType (463): Ошибка получения записи в пакете 0 (ошибка -75) в действии Android DrawerLayout Double Drawer (левый и правый ящики одновременно) Разрешение отклонено (отсутствует разрешение INTERNET?): Но предоставляется разрешение Android: AppWidget с настраиваемым представлением не работает Первая сборка с AndroidStudio не выполнена

Получены ли заказы на Android?

Если 2 трансляции, A и B и отправленные в этом порядке, Android гарантирует, что все заинтересованные получатели получат их в том же порядке?

Solutions Collecting From Web of "Получены ли заказы на Android?"

Я полагаю, вы спрашиваете, есть ли какой-либо способ гарантировать, что каждый заинтересованный получатель получит свою соответствующую трансляцию A до получения трансляции B. Лучший ответ, который я могу дать, – это то, что это очень вероятно, потому что все трансляции передаются в ActivityManager который должен Обрабатывать их по очереди. Но я не верю, что есть что-то в рамках, которое «гарантирует» это поведение (я не могу найти очередь на ActivityManager, где они все размещены или что-то в этом роде). Кроме того, BroadcastReceiver будет обрабатывать только одно намерение за раз, что помогает.

Если вместо этого вы имели в виду «могу ли я контролировать порядок приемников, в которых отправляется каждая трансляция», тогда ваш ответ лежит на sendOrderedBroadcast() поскольку другие не ускользнули.

Более подробную информацию об этом вопросе можно найти здесь:

Выполнение широковещательного приемника.
https://groups.google.com/forum/#!topic/android-developers/ClIGNuGJUts

В приведенной выше ссылке Диана Хакборн пишет …

«Частный приемник может обрабатывать только одну трансляцию за раз. Поскольку каждая передача происходит, она обрабатывается для определения целей, к которым она должна быть направлена, и отправляется в очередь сообщений для каждой цели. Когда будет отправлена ​​более поздняя передача, она будет обычно Не перемещаться впереди очереди.

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

В этой статье предлагается использовать sendBroadcastSync () для синхронной доставки, но это не гарантируется.

Сообщает ли LocalBroadcastManager события в том порядке, в котором события были отправлены?

Вы можете проверить поведение для трансляции A, а если нет, не используйте B до тех пор, пока не произойдет A? Таким образом, они могут быть приняты назад, но все же действуют правильно?

Вы можете использовать sendOrderedBroadcast (если у вас есть контроль над этим), чтобы гарантировать заказ.