2016-07-20 3 views
0

У меня есть четыре действия, открытые A, B, C, D (активность «А» - это не моя деятельность по запуску), и приложение находится в фоновом режиме (т.е. нажата кнопка «Домой»).Как я могу удалить задачу из моего приложения, не вызывая startActivity() или finishAffinity()

Теперь, основываясь на полученном сообщении GCM, мне нужно завершить все действия или очистить задачу. Так что в следующий раз, когда пользователь откроет приложение, откроется совершенно новая активность «E».

Так что ни один> Я не могу сделать startActivity с флагом CLEAR_TASK

ни 2> finishAffinity(), как я не буду иметь ссылку деятельности.

3> Существует решение для использования BroadcastReceiver и завершения действий вручную, но в некоторых мобильных телефонах с низкой конфигурацией это решение дает проблемы.

Так есть ли способ достичь этого?

+0

Почему вы не можете сделать clear_task? –

+0

Идентификация предлагает проверить onResume для условия и открыть новую деятельность соответственно. Кроме того, решение BroadcastReceiver звучит лучше, чем вы исправляете проблемы – X3Btel

+0

@abhinav .. сделать clear_task Мне нужно сделать startActivity() .. как приложение в фоновом режиме, так что приложение всегда будет на переднем плане, что плохой пользовательский интерфейс –

ответ

0

При обработке уведомления вы можете убить приложение, выполнив следующие

android.os.Process.killProcess (android.os.Process.myPid())

четырех компонентов - Activity, Service, Content Provider, Broadcast Receiver работает в отдельном потоке в рамках одного процесса. Поэтому, когда вы будете запрашивать myPid(), он будет указывать тот же идентификатор процесса, который также имеет ваши действия!

Я надеюсь, что это решает вашу проблему!

 Смежные вопросы

  • Нет связанных вопросов^_^