Объяснение сходства задач Android

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

Кто-нибудь может объяснить близость задачи с точки зрения неспециалистов?

2 ответа

Для чего используется 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 не были сохранены на уровне B weather screen, Хотя это одно и то же действие, это другое СОСТОЯНИЕ этого действия.

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

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

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

В этих обстоятельствах изменение taskAffinity of Activity может быть желательным. Пользователь изменит уровень 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

Вы можете найти все случаи (а иногда и крайние случаи) в этой подробной презентации.

См. Раздел Управление задачами Android и обратным стеком.

Другие вопросы по тегам