2014-11-07 4 views
0

Я создал мероприятие, установил его как функцию «Домой» и установил launchMode с singleTask. Когда я нажимаю на дом, действие будет в состоянии onpause, а затем наStop. Что меня смущает, почему активность будет перезапущена, если вернуться из значка, отображаемого в диалоговом окне «home pick»? Он вызывает onCreate() снова без вызова onDestroy().Почему «домашняя» активность будет убита при нажатии кнопки «Домой»?

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

+0

почтовый исходный код ... –

+0

@Darpan, я желаю, чтобы деятельность не была убита домашним дном. Я обнаружил, что это произошло только один раз после того, как приложение было только что установлено. – maozedong

ответ

0

Возможно, вы захотите сообщить, чего вы хотите достичь. Потому что вот как singleTask. Он доставляет существующее намерение onNewIntent() существующего экземпляра деятельности. Таким образом, активность не будет уничтожена, но будет вызван onCreate(), поскольку она будет воссоздавать активность с существующими намерениями.

Цитируя documentation

Система создает активность в корне новой задачи и маршрутов намерения к нему. Однако, если экземпляр действия уже существует, система перенаправляет намерение на существующий экземпляр посредством вызова его метода onNewIntent(), а не создает новый.

+0

, но на данный момент активность уже существует, зачем нужно снова воссоздать? – maozedong

+0

, потому что вы использовали 'launchMode = Singletask'. Является ли это какой-то целью в вашем приложении? – Darpan

+0

yes, cauz my app - это пусковая установка .. Мне нужно обработать событие Home (by onNewEvent). – maozedong

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