Объяснение Аффинации задачи Android

Для чего используется атрибут taskAffinity ? Я просмотрел документацию, но не мог понять.

Может ли кто-нибудь объяснить близость задачи в условиях laymans?

Solutions Collecting From Web of "Объяснение Аффинации задачи Android"

Что такое Android Task Affinity?

Приложение android имеет действия, которые образуют стек, например колоду карт. Если вы запустите приложение Android и запустите пять действий A, B, C, D, E. Они образуют стек

 E - chat view D - weather screen C - map view B - weather screen A - login screen 

E – это последнее действие, которое нужно запустить, и оно отображается. Если вы закроете E, появится сообщение D. Если вы закроете D, появится C. и т.п.

Обратите внимание, что действия B и D – это одно и то же действие. Что делать, если пользователь должен был внести некоторые изменения в D weather screen , а затем решил закрыть активность, а затем закрыть представление C Map view ?

Затем пользователь вернется на экран погоды, и пользователь будет недоволен, потому что изменения, сделанные на D weather screen уровня D weather screen , не были сохранены на B weather screen на уровне B weather screen Хотя это одно и то же действие, это другое состояние этой деятельности.

У пользователя был 5-слойный стек действий, и два из них были одного и того же вида деятельности. Попадание всех 5 из стека создаст явление, в котором вы будете взаимодействовать с двумя разными версиями одной и той же деятельности и может быть довольно запутанным.

Пользователи обычно не думают о жесткой стеке действий. Они думают: «Ох, погода, я сделаю там изменения», а затем они захотят вернуться к представлению «Карта». Затем снова создайте резервную копию, потому что они хотят вернуться на экран входа в систему. Почему отображается B weather app и почему он не сохранил настройки с уровня D ?

Программист мог бы облегчить некоторую путаницу, если действия B и D были связаны в состоянии. Таким образом, изменения меняются друг на друга. Каждый раз, когда пользователь открывает новый экран погоды, он тайно открывает единственный экземпляр экрана погоды.

В этих обстоятельствах может потребоваться изменение задачи. Пользователь изменит уровень D. Затем вернитесь к уровню B. И посмотрите изменения в B, которые были сделаны D.

Программа держит стек, с которым вы можете сделать резервное копирование, что приятно, и когда пользователь открывает X экземпляров одной и той же активности в случайных местах, они все одно.

Слайд-шоу с большим количеством объяснений: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack

Сродство указывает, к какой задаче относится деятельность.

Сродство вступает в игру в двух обстоятельствах:

Когда намерение, запускающее действие, содержит флаг FLAG_ACTIVITY_NEW_TASK.

Когда действие имеет атрибут allowTaskReparenting, установленный как «true».

Пожалуйста, обратитесь к http://developer.android.com/guide/components/tasks-and-back-stack.html.