티스토리 뷰
새로운 task 생성하기
◼ Manifest
android:launchMode = ["standard" | "singleTop" | "singleTask" | "singleInstance"] |
◼ Intent flag
FLAG_ACTIVITY_SINGLE_TOP |
FLAG_ACTIVITY_NEW_TASK |
FLAG_ACTIVITY_MULTIPLE_TASK |
taskAffinity
새로운 task 생성 시 taskAffinity 는 굉장히 중요하기 때문에 정확히 이해하자.
[Android] - Task (2) - taskAffinity
가령, taskAffinity 설정 없이 "FLAG_ACTIVITY_NEW_TASK" 로 activity 를 활성화 한다면
신규 task 가 생성되지 않고 기존의 task(root activity task) 에 속할 것이다.
(taskAffinity 를 명시하지 않아 디폴드로 앱의 패키지 명이 되었기 때문이다.)
FLAG_ACTIVITY_NEW_TASK
새로운 태스크를 생성하여 그 태스크안에 엑티비티를 추가.
- 동일한 affinity 가 있다면 그 task 에 새 액티비티가 들어간다.
- 동일한 affinity 가 없다면 새로운 task 에 속한다.
FLAG_ACTIVITY_MULTIPLE_TASK 플래그와 함께 사용하면 무조건 태스크가 새로 생성.
[Android] - Task (4.1) - 새로운 task 생성 [FLAG_ACTIVITY_NEW_TASK]
FLAG_ACTIVITY_MULTIPLE_TASK
본 속성은 FLAG_ACTIVITY_NEW_TASK 와 함께 사용하지 않으면 아무런 효과가 없다.
FLAG_ACTIVITY_NEW_TASK 와 함께 사용하면 무조건 새로운 task 를 만들고 그 안에 root activity 가 활성화 된다.
[Android] - Task (4.2) - 새로운 task 생성 [FLAG_ACTIVITY_MULTIPLE_TASK]
FLAG_ACTIVITY_SINGLE_TOP & [launchMode="singleTop"]
대상 task 는 하나의 instance 만 사용한다.
활성화 될 task 의 top 에 같은 activity 가 존재할 경우, 새로운 activity 를 top 으로 올리지 않고 기존의 top 을 재사용.
(launchMode="singleTop" 과 FLAG_ACTIVITY_SINGLE_TOP 은 동일한 기능이다)
[Android] - Task (4.3) - 새로운 task 생성 [FLAG_ACTIVITY_SINGLE_TOP & launchMode="singleTop"]
[launchMode="standard"]
LaunchMode 의 기본값으로 별도의 설정이 없다면 해당 mode 로 동작한다.
별도의 태스크를 생성하지 않고 해당 task 에 계속 추가한다.
매번 새로운 activity instance 를 생성.
[Android] - Task (4.4) - 새로운 task 생성 [launchMode="standard"]
[launchMode="singleTask"]
"singleTask" 로 지정된 activity 는 task 에 해당 activity 가 하나만 존재한다.
◼ 동일한 affinity 가 있는 경우
- 해당 activity 가 존재하는 경우 새로 생성하지 않는다.(onNewIntent() 호출)
- 해당 activity 가 존재하지 않는 경우 새로 생성하여(onCreate() 호출) 가장 위에 추가.
◼ 동일한 affinity 가 없는 경우
- 새로운 task 를 생성해고 해당 activity 는 task 의 root 가 된다.
[Android] - Task (4.5) - 새로운 task 생성 [launchMode="singleTask"]
[launchMode="singleInstance"]
TaskAffinity 와 상관 없이 무조건 새로운 task 생성\
새로 생성된 task 내에서는 "singleInstance" 로 설정된 activity 하나만 존재.
"singleInstance" 로 설정된 activity 가 존재하는 상태에서 활성화 할 경우 기존 activity 를 재사용 한다.
[Android] - Task (4.6) - 새로운 task 생성 [launchMode="singleInstance"]
'Android > Task' 카테고리의 다른 글
Task (4.2) - 새로운 task 생성 [FLAG_ACTIVITY_MULTIPLE_TASK] (0) | 2019.04.19 |
---|---|
Task (4.1) - 새로운 task 생성 [FLAG_ACTIVITY_NEW_TASK] (0) | 2019.04.19 |
Task (3) - excludeFromRecents (2) | 2019.03.27 |
Task (2) - taskAffinity (1) | 2019.03.27 |
Task (1) (0) | 2019.03.27 |
- Total
- Today
- Yesterday
- M2E
- 앱테크 추천
- mPANDO
- StringUtils
- registerForContextMenu
- StartService
- onCreateContextMenu
- bindservice
- 무료채굴
- onContextItemSelected
- 앱테크
- Android Service
- android activity flag
- task
- 안드로이드 인텐트
- android intent
- task 생성
- Intent
- 무료 채굴
- android flag activity
- RoomDatabase
- WEMIX
- notifyDataSetChanged
- BroadcastReceiver
- 리워드앱
- 안드로이드 서비스
- 채굴앱
- 리워드 어플
- p2e
- android task
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |