Activity정의 

 안드로이드에서는 사용자가 사용한 Activity들을 Task로 하여 그 정보를 유지합니다.
 관련된 Acvitity는 group으로 Stack에 저장합니다.
 root Activity는 task상의 첫번째 Activity이고 top Activity는 현재 화면에 보여지는 Activity
 입니다. Activity가 다른 Activity를 시작하면 그 새로운 Activity가 stack에 push되고 그
 Activity가 top Activity가 됩니다. 그리고 이전 Activity는 stack에 남아 있게 됩니다.
 이 상태에서 Back Key를 누르게 되면, 이전 Activity가 stack에서 pop되면서 화면에 보여
 지게 되어 resume이 됩니다.

 stack은 Activity의 Object(Instance)를 가지고 있습니다. 따라서 같은 Activity의 여러개 
 시작할 수 있습니다.
 stack내의 Activity는 stack이므로 재정렬되지 않고, 순서가 그대로 유지됩니다.
 단지 push, pop만을 이용하고 있습니다.
 
 Task는 Activity들의 stack입니다. 따라서 task내의 Activity에 어떤 값을 설정하는 방법은
 없습니다. 단지 root Activity만이 affinity(친밀도) set을 이용하여 read, set이 가능합니다.

 Task의 모든 Activity들은 하나의 집합으로 background 또는 foreground로 이동합니다.
 예를 들면, 현재 task가 4개의 Activity를 가진다고 가정을 했을때, HOME Key를 눌렀을때
 application launcher로 이동하게 됩니다. 이어서 새로운 application을 실행합니다.
 그러면 현재 task는 background로 가고 새로운 task의 root Activity가 표시됩니다.
 이어서 사용자가 다시 HOME으로 갔다가 이전 Application을 다시 선택한다면, 그 task
 가 다시 앞으로 나오게 됩니다. 이때 BACK Key를 누르면 root Activity가 표시되지 않고,
 task상의 이전 Activity가 표시되게 됩니다.

 Task와 Activity간의 결합과 동작에 대한 제어는 intent object의 flag 파라미터와 
 AndroidManifest의 <Activity> element의 몇가지 속성으로 제어가 가능합니다.

 Intent Object Flag
 1. FLAG-ACTIVITY_NEW_TASK
 2. FLAG_ACTIVITY_CLEAR_TOP
 3. FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
 4. FLAG_ACTIVITY_SINGLE_TOP

 Activity Element 
 1. taskAffinity
 2. launchMode
 3. allowTaskReparenting
 4. clearTaskOnLaunch
 5. allowRetainTaskState
 6. finishOnTaskLaunch
 
 위의 내용은 http://blog.naver.com/free2824?Redirect=Log&logNo=60067211415 에서
 참조 하였습니다.

'안드로이드' 카테고리의 다른 글

Task  (0) 2011.01.26
Affinityes and new Tasks  (0) 2011.01.26
전화 걸기  (0) 2011.01.17
Telephony Manager  (0) 2011.01.17
Telephony 란?  (0) 2011.01.17

+ Recent posts