속성은 정확히 무엇에 taskAffinity
사용됩니까? 나는 문서를 읽었 지만 많이 이해할 수 없었습니다.
누구든지 평신도 용어로 작업 친 화성을 설명 할 수 있습니까?
속성은 정확히 무엇에 taskAffinity
사용됩니까? 나는 문서를 읽었 지만 많이 이해할 수 없었습니다.
누구든지 평신도 용어로 작업 친 화성을 설명 할 수 있습니까?
답변:
Android Task Affinity는 무엇에 사용 되나요?
Android 애플리케이션에는 카드 데크와 같은 스택을 형성하는 활동이 있습니다. Android 애플리케이션을 시작하고 5 개의 활동 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 계층의 활동 스택을 가지고 있었고 그 중 2 개는 동일한 활동이었습니다. 스택에서 5 개를 모두 꺼내면 동일한 활동의 서로 다른 두 버전과 상호 작용하는 현상이 발생하고 매우 혼란 스러울 수 있습니다.
사용자는 일반적으로 엄격한 활동 스택의 관점에서 생각하지 않습니다. 그들은 "오, 날씨보기를 변경하겠습니다"라고 생각하고지도보기로 돌아가고 싶어합니다. 그런 다음 로그인 화면으로 돌아 가기를 원하므로 다시 백업하십시오. 왜 B weather app
표시되고 레벨에서 설정을 저장하지 않았 D
습니까?
프로그래머는 활동 B
과 D
상태에 링크 된 경우 약간의 혼란을 완화 할 수 있습니다 . 그런 식으로 하나가 바뀌면 다른 하나가 바뀝니다. 사용자가 새 날씨 화면을 열 때마다 날씨 화면의 단일 인스턴스가 비밀리에 열립니다.
이러한 상황에서 활동의 taskAffinity를 변경하는 것이 바람직 할 수 있습니다. 사용자는 레벨 D를 변경합니다. 그런 다음 레벨 B로 돌아갑니다. 그리고 B에서 D에 대한 변경 사항을 확인합니다.
이 프로그램은 백업 할 수있는 스택을 유지합니다. 좋은 점은 사용자가 임의의 장소에서 동일한 활동의 X 인스턴스를 열면 모두 하나입니다.
자세한 설명이 포함 된 슬라이드 쇼 : http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
singleInstance
대신 사용하면 taskAffinity
어떻습니까?
taskAffinity
전혀 :-( 설명이 모호 논문의 답변이 너무 많은 upvotes을 얻을 놀라운 것을..
taskAffinity
은 언급하지 않습니다 . 활동이 실행되기를 선호하는 작업의 이름을 지정하는 데 사용됩니다. Intent
에 플래그 가 포함 되면 FLAG_ACTIVITY_NEW_TASK
활동이이 특정 작업 (으로 정의 됨 taskAffinity
)에 배치됩니다.
Although it's the same activity, it's a different STATE of that activity.
"그것은 그 활동 의 또 다른 사례 입니다." 라고 말할 것 입니다.
선호도는 활동이 속한 작업을 나타냅니다.
친화력은 두 가지 상황에서 작용합니다.
활동을 시작하는 인 텐트에 FLAG_ACTIVITY_NEW_TASK 플래그가 포함 된 경우.
활동의 allowTaskReparenting 속성이 "true"로 설정된 경우.
http://developer.android.com/guide/components/tasks-and-back-stack.html을 참조 하십시오.
이 자세한 프레젠테이션에서 모든 사례 (및 일부 경우에는 가장자리 사례)를 찾을 수 있습니다.
Android 작업 및 백 스택 조작을 참조하십시오.