Intereting Posts
Как читать входящее сообщение с помощью службы в фоновом режиме в android? Android: всплывающее окно с ошибкой в ​​EditText не сдвигается вниз, когда клавиатура уходит Как получить идентификатор Android для элемента меню в Android? Андроид не может найти класс из внешней банки Определите, являются ли два Java-объекта одного класса Как создать прозрачную активность WITHOUT windowIsFloating Создайте SSL-Socket на Android с самозаверяющим сертификатом Не удалось подключить эмулятор Android Wear с устройством Самый простой способ отображения строк со значками в RecyclerView Навигационный ящик google maps v2, блок блокировки карты Android: Bitmap recycle () как это работает? Как реализовать RecyclerView с строками CardView в фрагменте с помощью TabLayout Действие onDestroy / Fragment's onDestroyView set Null practice Попытка переопределить getView в SimpleCursorAdapter дает NullPointerExceptio BLE получает uuid, закодированную в рекламном пакете

Получены ли заказы на 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 (если у вас есть контроль над этим), чтобы гарантировать заказ.