Android - Убедитесь, что активность активна, прежде чем запускать Intent?

StackOverflow https://stackoverflow.com/questions/2327943

Вопрос

В данный момент я передаю намерение широковещательному приемнику, который, в свою очередь, запускает Действие.

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

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

Мне было интересно, есть ли способ убедиться, что Действие активировано, прежде чем отправлять намерение?

Или какое-либо другое решение этой проблемы?

Это было полезно?

Решение

Почему бы не начать это занятие, если оно еще не запущено?

Общий механизм для запуска нового действия, если оно не запущено - или для вывода стека действий на передний план если оно уже запущено в фоновом режиме — заключается в использовании Флаг NEW_TASK_LAUNCH в вызове startActivity().

Это или просто дайте действию шанс начаться, прежде чем запускать Намерение.

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

public abstract void sendOrderedBroadcast (Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top