Android Intent Flag
Android 에서 Intent를 공부하다보면 단순히 Activity 간의 이동이 아닌 Stack 구조를 가지고 있는 Task를 만나게 된다.
"오늘은 이 Task를 어떻게 활용하면 좋을까?" 에 대한 학슥하고자 한다. 그내용이 바로 Flag이다.
1.왜 사용하는가?
Activity를 호출하다보면 Activity에 대해 중복 문제가 발생하곤 한다. 이때 중복을 방지하거나 Activity에 대한 흐름을 제어하고 싶을 때 쓰인다.
2. Task
Stack 구조로 되어 있으며, 어플리케이션에서 실행되는 Activity를 보관하고 관리하는 역할을 담당한다.
3. 어떻게 사용해야 하는가
3-1. AndroidManifest에서 제어
<activity android:launchMode="사용하고자하는 속성"></>
- standard : Stack 중 어느 곳에나 위치 할 수 있으며, 여러개의 인스턴스가 생성 가능하다.
- singleTop : Stack 중 어느 곳에사 위치 할 수 있으며, 여러개의 인스턴스가 생성 가능하고 호출한 Activity와 최상위 Activity가 동일한 경우 최상위 Activity가 재사용되고, 기존 최상위 Activity는 poop() 처리됨
- singleTask : Root Activity로만 존재하며 하나의 인스턴스만 생성 가능, 다른 액티비티 실행시 동일 Task 내에서 실행 가능
- singleInstance : Root Activity로만 존재하며 하나의 인스턴스만 생성 가능, Task 내에 해당 Activity 하나만 속할 수 있다. 다른 Activity를 실행시키면 새로운 Task가 생성되어 그 Task에 포함되게 된다.
3-2. 소스코드로 제어
Intent.addFlags() 메서드 또는 Intent.setFlags() 사용
addFlags() : 새로운 flag를 기존 flag에 추가
setFlags() : 오래된 flag 전체를 대체
flag 정보(엄청 많음)
https://developer.android.com/reference/android/content/Intent#constants_1
Intent | Android Developers
developer.android.com
참고
Intent Flag에 대한 이해
Android에서 Intent를 공부하다보면단순히 Activity 간의 이동이 아닌 Stack구조를 가지고 있는 Task를 만나게 된다. ‘오늘은 이 Task를 어떻게 활용하면 좋을까?’ 에 대해 학습하고자 한다. 그 내용이
medium.com