Начал деятельность с экрана домашней клавиши - PullRequest
3 голосов
/ 24 февраля 2011

У меня есть фоновая служба, которая запускает действие,

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

После уничтожения этого действия и его перезапуска через «долгое нажатие клавиши главного меню», это действие начинается снова. Но я хочу начать основное занятие. Как я мог это понять?

Ответы [ 2 ]

4 голосов
/ 24 февраля 2011

Не могли бы вы объяснить более подробно? Если я понимаю вашу проблему, попробуйте установить FLAG_ACTIVITY_NO_HISTORY.

В качестве альтернативы ручным решением было бы проверить FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY по назначению в MyActivity и запустить основной вид деятельности, если вы видите этот флаг установленным Следующий код должен сделать это:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}
0 голосов
/ 24 февраля 2011

Проблема в том, что вы запустили действие из службы -> пришло уведомление -> пользователь запустил приложение. -> Нет уведомления -> основное действие вышло на передний план.Главное меню меню «Основное действие запускается и показывает Уведомление.

, поэтому одно разрешение« Очистить »устанавливается Основным действием как« Исключить из недавнего = true »и« Нет истории = true;пользователь не сможет видеть вашу активность в «долгом нажатии на клавишу главного меню»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...