Android: как сервис может запустить действие без старых действий в стеке, показанном позади - PullRequest
2 голосов
/ 11 декабря 2010

Сценарий:

Activity "A" launches Service "S".

Нажмите клавишу «Домой» / «Назад», чтобы не отображать «A».

Через некоторое время "S" намерение начать деятельность "B"

Intent intent = new Intent(context, MyDialog.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

Текущее поведение: «B» появляется с «A» позади сцены.

Что я хочу: «B» появляется без «A» в сцене.

Примечание: действие B является диалоговым заданием

Ответы [ 3 ]

1 голос
/ 11 декабря 2010

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

Вы можете использовать атрибут noHistory в упражнении A, если это соответствует вашим требованиям. http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

Но когда вы описываете это, то, что вы видите, не должно произойти, ОСОБЕННО, если вы уходите от А с помощью кнопки назад.

0 голосов
/ 27 апреля 2013

Вы можете получить ответ от Служба Android и AlertDialog Activity .Цитируя комментарий Альбина :

Добавьте launchMode="singleInstance" в манифест для DialogActivity

0 голосов
/ 11 декабря 2010

Полагаю, вы должны назвать finish(); последней строкой ниже того, что у вас здесь.Не цитируйте меня, хотя.

...