В чем именно используется атрибут taskAffinity
? Я просмотрел документацию , но я не мог понять многое.
Может ли кто-нибудь объяснить близость задачи в условиях laymans?
В чем именно используется атрибут taskAffinity
? Я просмотрел документацию , но я не мог понять многое.
Может ли кто-нибудь объяснить близость задачи в условиях laymans?
Что такое Android Task Affinity, используемое для?
В андроидном приложении есть действия, которые образуют стек, например колоду карт. Если вы запустите приложение 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
. Таким образом, изменения меняются друг на друга. Каждый раз, когда пользователь открывает новый экран погоды, он тайно открывает единственный экземпляр экрана погоды.
В этих обстоятельствах может потребоваться изменение задачи. Пользователь изменит уровень 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 и обратный стек"