태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
2012.01.31 16:24



안녕하세요
돼지왕왕돼지입니다.

오늘 살펴볼 Manifest 관련 attribute 는 taskAffinity 입니다.
이 녀석은 Activity Tag 에 속해 있는 속성인데요,
Activity 들의 Task 관리 측면에서 꼭 알아두어야 할 녀석입니다. 

 먼저 Affinity 란 단어가 생소하실 텐데, 영어사전을 찾아보면 "친화력", "친밀감" 이라고 정의되어 있네요.
이 affinity 가 어떤 역할을 하는 녀석인지 developer 를 통해 알아볼까요?

- Activity 가 Affinity ( 친밀감 ) 를 가지는 Task 를 지정한다.

- 같은 taskAffinity 값을 가지고 있는 activity 들은 "개념상" 같은 task 에 속한다.

- 기본적으로 한 application 안의 모든 activity 들은 같은 affinity 를 가지고 있다.

- taskAffinity 의 default value 는 <manifest> 에 정의된 packageName 이다.

- taskAffinity 값은 allowTaskReparenting 속성이나 FLAG_ACTIVITY_NEW_TASK 와 상호작용하여 activity 의 task 를 결정한다. 

 

친숙하게 쓰이는 녀석이 아니라, 이해가 안 갈 수 있어 예제를 준비해 보았습니다.

A App. 과 B App. 이 있습니다.
A app. 의 taskAffinity 는 "com.a.app" 이고 B app. 의 taskAffinity 는 "com.b.app" 이라고 가정해봅시다.

A app 에 새로운 activity 를 추가하면서 이놈의 taskAffinity 를 강제로 "com.b.app" 으로 설정을 했습니다.
자 이제 이 새로운 activity 를 A app. 에서 FLAG_ACTIVITY_NEW_TASK flag 와 함께 startActivity() 하면 어떻게 될까요?

정답을 아시겠어요? 먼저 정답을 생각해보시고, 아래를 펼쳐보세요.

더보기


요 녀석만 잘 쓰면 task 에 대한 달인의 길에 한 발짝 다가갔다고 볼 수 있겠네요.
테스트 해보면서 이해하도록 노력해보세요~

그럼~
 
 

로그인 없이도 손가락 추천 가능합니다. 손가락 꾸욱~
저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

  1. harris 2017.11.16 16:11 신고  댓글주소  수정/삭제  댓글쓰기

    달인의 길!

  2. 현형 2017.11.17 14:07 신고  댓글주소  수정/삭제  댓글쓰기

    우왕~ 멋쩌용.


Posted by 돼지왕왕돼지