[안드로이드] 스택 ( Stack ) 제거
- 프로그래밍 정보
- 2010. 8. 18.
반응형
사용자가 태스크를 사용 중 일정시간 동안 벗어나 있게 되면
시스템은 루트 액티비티만 남기고 다른 모든 액티비티를 태스크에서 제거합니다.
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
이것은 어느정도의 시간이 지난 뒤에 , 사용자가 다시 그 태스크로 돌아왔을때엔 이전에 하던 작업 보다는 뭔가 새로운 작업을 하기 위해 돌아왔다고 생각하는 방식인데요,
이런 방식이 디폴트로 동작합니다.
따라서 , 이런 방식을 수정하기 위한 액티비티 속성이 존재합니다.
alwaysRetainTaskState 속성
루트 액비티비테 이 속성이 ture 면 디폴트 동작은 이루어지지 않고 오랜 시간 이후에도 스택 내의 모든 액티비티들이 유지되는 속성입니다.
clearTaskOnLaunch 속성
루트 액티비티에 이 속성이 true 면 사용자가 태스크를 떠났다가 되돌아 올때마다 스택의 루트 액티비티를 제외한 다른 모든 액티비티를 제거합니다.
즉, alwaysRetainTaskState 와는 정반대의 기능이라 할 수 있겠군요.
finishOnTaskLaunch 속성
이 속성이 true 면 사용자가 떠났다가 되돌아 와도 더이상 액티비티가 존재하지 않습니다.
즉, 루트 액티비티를 포함한 모든 액티비티를 제거하는 것이지요.
스택에서 액티비티를 제거하는 다른 방법으로는 인텐트 객체에 FLAG_ACTIVITY_CLEAR_TOP 플래그를 지정하면 됩니다.
이럴 경우 대상이 되는 태스크의 해당 인텐트 처리를 맡은 액티비티는 인텐트 처리를 위해 스택의 최상위로 가야하기 때문에 그 위의 모든 액티비티가 제거되는 효과를 가집니다.
대부분 FLAG_ACTIVITY_NEW_TASK 플래그와 함께 쓰이는데, 이렇게 되면 지정된 태스크 내의 액티비티는 인텐트에 응답할 수 있는 위치로 이동되겠지요.
관련글
[안드로이드] 런치 ( Launch ) 모드
[안드로이드] 어피니티(Affinity) 와 태스크
[안드로이드] 액티비티와 태스크
[안드로이드] 인텐트 필터
[안드로이드] 안드로이드 매니페스트 파일
[안드로이드] 어피니티(Affinity) 와 태스크
[안드로이드] 액티비티와 태스크
[안드로이드] 인텐트 필터
[안드로이드] 안드로이드 매니페스트 파일
반응형