티스토리 뷰

300x250
300x250



새로운 task 생성하기

◼ Manifest

 android:launchMode = ["standard" | "singleTop" | "singleTask" | "singleInstance"]

 

◼ Intent flag

FLAG_ACTIVITY_SINGLE_TOP
 FLAG_ACTIVITY_NEW_TASK
 FLAG_ACTIVITY_MULTIPLE_TASK



android:launchMode = "singleInstance"

◼ TaskAffinity 와 상관 없이 무조건 새로운 task 생성.

   [Android] - Task (2) - taskAffinity

 

◼ 새로 생성된 task 내에서는 "singleInstance" 로 설정된 activity 하나만 존재.

   (해당 activity 는 root 이면서 top 이 된다.)

 

◼ "singleInstance" 로 설정된 activity 가 존재하는 상태에서 활성화 할 경우 기존 activity 를 재사용 한다.

   (onNewIntent() 호출)



Example

하단은 A1 -> A2 -> A3 -> A4 -> A3 -> A4 activity 를 차례로 활성화 하는 상황이다.

 

◼ A3 이 singleInstance 이고, A1 -> A2 -> A3 -> A4 activity 를 차례로 활성화

   

 

◼ 위 상황에서 A3 -> A4 를 한 번 더 활성화

   (A4 는 새로 생성되고, A3 는 재활용 되고 있다.)

 



Code

A1 activity

 

A2 activity

 

A3 activity

 

A4 activity

 

Manifest



ADB

adb shell dumpsys activity



728x90
댓글