Неожиданное поведение при запуске действия в стиле диалога - PullRequest
2 голосов
/ 08 декабря 2011

Я наблюдал в WhatsApp такое поведение: когда приходит новое сообщение, WhatsApp запускает действие в стиле диалога, и такое действие может быть отменено или подтверждено пользователем.

Поэтому я добавил аналогичное действие в стиле диалога в свое приложение. В целях тестирования я также добавил диспетчер тревог и приемник тревог, чтобы приемник тревог запускал каждые 10 секунд.

Код, который я использовал для запуска действия в диалоговом стиле:

   Intent dialogIntent = new Intent(MyApplication.sharedApplication, MyDialogStyleActivity.class);
   dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   MyApplication.sharedApplication.startActivity(dialogIntent);

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

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

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

Кто-нибудь может помочь?

1 Ответ

4 голосов
/ 08 декабря 2011

Ваше приложение поддерживает стек активности.Таким образом, ваше основное действие A и ваше диалоговое действие B представлены как A-> B в стеке активности вашего приложения.

Когда ваше приложение запущено и переведено в фоновый режим.Когда ваша диалоговая активность вызывается и выводится на передний план, ваша основная деятельность A все еще активна и, таким образом, будет отображаться.Может быть, вы можете вызвать «finish ()» в A после startActivity (dialogActivity), чтобы убедиться, что А завершено и уходит.

...