2014-08-31 2 views
0

Я пытаюсь понять задачи андроида. Предположим, что вы запускаете действие X из значка запуска, и из этого действия вы запускаете новое действие Y из другого приложения. У вас есть задача, состоящая из действий X и Y. Теперь предположим, что вы нажмете кнопку «домой» и снова щелкните значок запуска X. В документации по Android говорится, что по умолчанию система должна показывать задачу по-прежнему с Y сверху.Попытка понять задачи Android

Однако, немного экспериментируя на реальном устройстве, вы обнаружите, что это не то, что происходит много раз. Предположим, что X - приложение электронной почты, и вы просматриваете любой контент из электронной почты в другом приложении Y (например, открываете фотографию в галерее, открываете документ PDF в Quickoffice, открываете веб-страницу в Chrome и т. Д.), Вы обнаружите, что если вы щелкните домой, а затем значок запуска X, вы на самом деле видите X снова. Иногда активность, показывающая содержимое, переносится на другой значок запуска, но часто он полностью забыт системой Android, насколько я могу судить.

Это то, что происходит, если X - это GMail, Yahoo Mail или Google Drive.

Вопрос в том, что заставляет Y отбрасывать задание? Это что-то X делает или что-то Y делает? Если это что-то, что делает Х, есть ли что-нибудь, что вы можете сделать как разработчик Y, чтобы защитить его и остановить вашу деятельность, забытую системой Android? Спасибо

ответ

0

Это все о taskAffinity см. here для документации. Для большей ясности вы можете прочитать этот ответ https://stackoverflow.com/a/17873524/403255

+0

Спасибо. Ответ, на который вы ссылаетесь, и особенно слайд-шоу, действительно хорош. Они подробно объясняют непонятно сложные правила для принятия решения о том, начнется ли намерение нового действия в той же задаче, что и отправитель или в новой, и будет ли он создавать новый экземпляр или маршрутизироваться через onNewIntent() и т. Д. И т. Д. Но если я ничего не пропущу, они ничего не говорят о том, почему нажатие кнопки «домой», а затем щелчок по значку запуска часто убивает активность. Конечно, щелчок на значке запуска на главном экране должен просто восстановить задачу до состояния, прежде чем нажимать дом? –

+0

Можете ли вы подробнее объяснить, как «щелчок по значку запуска часто убивает активность»? –

+0

Вот где я объясняю проблемы, которые у меня возникают более подробно. Для этого есть щедрость! http://stackoverflow.com/q/25518197/3973077 –

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