ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Task
    Android 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

    댓글

Designed by Tistory.