-
[Android] TaskAndroid 2020. 9. 2. 18:50반응형
개념
- Task란 특정 작업을 수행할 때 사용자와 상호 작용하는 Activity를 back stack에 쌓아둔 것을 말합니다.
- 새 작업을 시작하거나 홈 버튼을 통해 홈 화면으로 이동할 때 '백그라운드'로 이동할 수 있는 응집 단위입니다.
- stack으로 구성되어 있어 LIFO(Last In First out) 방식을 사용합니다.
- 최초로 실행된 Activity를 Root Activity라고 부르며 어플리케이션을 실행 했을 때 back stack에 쌓입니다.
- 마지막으로 실행된 Activity를 Top Activity라고 부르며 현재 화면에 보여지고 있는 Activity를 의미합니다.
- 홈 버튼을 눌러 홈 화면으로 나간 뒤 새로운 앱을 실행 시키더라도 이전 앱의 task는 사라지지 않습니다.
- 이전 앱의 task는 Background에 온전히 유지되며 다시 실행 시 Foreground로 나옵니다.
Task Delete
-
다른 활동을 시작하면 push하여 stack에 Activity가 쌓이고 back 버튼을 누르면 Top Activity가
pop 되면서 이전의 Activity가 다시 실행됩니다.
-
Activity 종료 시 task 에서 제거 되며 모든 activity 를 종료하면 해당 task 가 사라집니다.
-
stack은 절대 재 정렬되지 않습니다.
Managing Tasks
taskAffinity
-
task의 이름을 지정 해준다고 생각하면 이해하기가 쉽습니다.
-
AndroidManifest 에서 <activity> 요소의 taskAffinity 속성을 사용해서 Activity가 쌓일 back stack을 지정해줄 때 사용합니다.
-
FLAG_ACTIVITY_NEW_TASK 플래그를 가진 intent 객체로 부터 호출된 allowTaskReparenting
속성을 True로 가지고 있는 Activity 한하여 동작합니다.
launchMode
- Activity 와 Task가 연결되는 방식을 지정할때 사용합니다.
- standard → 기본 값으로 설정 되어있고, 여러 개의 인스턴스를 생성 할 수 있습니다.
- singleTop → 현재 작업이 맨 위에 있으면 새 인스턴스를 생성하지 않고 재사용 합니다.
- singleTask → Root Activity로만 존재하고 하나의 인스턴스만 생성 가능합니다.
- singleInstance → singleTask와 동일하지만 차이점은 task 내에 해당 Activity 하나만 속할 수 있습니다.
Intent Flag
- FLAG_ACTIVITY_NEW_TASK → singleTask 와 같은 동작 방법
- FLAG_ACTIVITY_SINGLE_TOP → singleTop 와 같은 동작 방법
- FALG_ACTIVITY_CLEAR_TOP → 모든 Activity를 pop 시키고 Root Activity를 push합니다.
반응형'Android' 카테고리의 다른 글
Fragment 통신 (setTargetFragment, Listener) (0) 2020.10.07 BindingAdapter에서 margin 설정하기 (0) 2020.09.24 Koin 입문기 (0) 2020.09.02 Dialog Fragment round corners (0) 2020.09.02 Android key hash 구하기 (1) 2020.09.02