현재 안드로이드의 태스크 ( Task ) 에 대해 적어보고 있습니다.
관련글은 하단에 있어요 ^^
태스크 시작하기
우선 가장 기본적인 안드로이드의 중요한 파일은 매니페스트 파일을 한번 보실까요?
그전에~ 매니페스트엔 여러가지 사항이 있기 때문에 태스크에 관련된 인텐트 필터만 우선 보겠습니다.
보시는것 처럼 인텐트 필터 액션을 " android.intent.action.MAIN" 으로 하고
카테고리를 " android.intent.category.LAUNCHER" 로 지정되어 있습니다.
이게 처음 프로젝트를 만들시에 시스템이 기본으로 만들어주는 매니페스트의 인텐트 필터인데요,
이렇게 지정하면 태스크의 시작점으로 설정됩니다.
즉, 액티비티의 아이콘과 라벨이 어플리케이션 런처에 표시되고, 사용자는 태스크를 런치하고 이후 다시 기존의 태스크로 되돌아 갈 수 있는 방법이 제공되지요.
사용자는 태스크를 벗어날 수 있어야하고 나중에 다시 되돌아 갈 수도 있어야 합니다.
때문에 "singleTask" 와 "singleInstance" 모드는 액티비티가 태스크를 항상 시작시키는 특성으로 인해 위의 그림처럼 MAIN과 LAUNCHER 필터를 가지고 있을 때에만 사용해야 할 것입니다.
마찬가지로 FLAG_ACTIVITY_NEW_TASK 플래그를 쓴다면 사용자가 그 태스크를 떠났을 때엔 다시 되돌아 올 수 있는 방법을 만들어야만 하겠지요.
노티피케이션 매니저 같은 것들은 외부 태스크에서 액티비티를 시작시키기 때문에 startActivity() 메소드에 파라미터로 FLAST_ACTIVITY_NEW_TASK 플래그를 항상 전달합니다.
따라서, 이 플래그를 쓰는 액티비티를 사용한다면, 사용자가 태스크를 떠났다가 다시 되돌아 올 수 있는 방법을 만들어야만 하지요.
너무 복잡해 지는것 같아, 아예 사용자가 다시 되돌아 올 수 없도록 해버리면 어떨까요?
사용자가 되돌아 오는것을 불가능하게 하려면 <activity> 엘리먼트의 finishOnTaskLaunch 속성을 "true"로 설정하면 됩니다.
출처 : http://underclub.tistory.com/284
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 프로세스와 생명주기 (0) | 2010.12.03 |
---|---|
[안드로이드] 컴포넌트 생명주기 - #3 브로드캐스트 리시버 생명주기 (0) | 2010.12.03 |
[안드로이드] 컴포넌트 생명주기 - #2 서비스 생명주기 (0) | 2010.12.03 |
[안드로이드] 컴포넌트 생명주기 - #1 액티비티 생명주기 (0) | 2010.12.03 |
[안드로이드] 런치 ( Launch ) 모드 (0) | 2010.12.03 |
[안드로이드] 액티비티와 태스크 (0) | 2010.12.03 |
컴포넌트 활성화 - 인텐트 (0) | 2010.12.03 |
안드로이드 컴포넌트 #4 - 컨텐츠 프로바이더 (0) | 2010.12.03 |
컴포넌트 #3 - 브로드캐스트 리시버 (0) | 2010.12.03 |