Android - Убедитесь, что активность активна, прежде чем запустить Intent? - PullRequest
0 голосов
/ 24 февраля 2010

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

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

Проблема в том, что у Действия не получается предназначенное для него Намерение, потому что оно запускается до того, как оно оживает, и Broadcast Reciever зарегистрирован.

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

Или любое другое решение этого вопроса?

1 Ответ

1 голос
/ 24 февраля 2010

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

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

Это или просто дать активности возможность начать работу перед тем, как запустить Intent.

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

public abstract void sendOrderedBroadcast (Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
...