안드로이드/CS

Android Intent Flag

김어찐 2022. 11. 2. 16:16
728x90

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

 

 

참고

https://medium.com/@logishudson0218/intent-flag%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-d8c91ddd3bfc

 

Intent Flag에 대한 이해

Android에서 Intent를 공부하다보면단순히 Activity 간의 이동이 아닌 Stack구조를 가지고 있는 Task를 만나게 된다. ‘오늘은 이 Task를 어떻게 활용하면 좋을까?’ 에 대해 학습하고자 한다. 그 내용이

medium.com

 

728x90