intent Flag란 무엇일까?

2021. 1. 27. 21:00Study

Intent Flag

Android 에서 Activity를 호출하다보면 중복 문제가 발생합니다.

중복이 발생했을 때, 중복을 방지하고 Activity의 흐름을 제어할 때 Intent Flag를 사용합니다.

 

Task

Task는 Stack구조이며, 어플리케이션에서 실행되는 Activity를 보관하고 관리하는 관리자 역할을 합니다.

Ex) SecondActivity

      MainActivity

      SplashActivity

     (차곡차곡 쌓이는 스택 구조)

 

사용법

Manifest

<activity android:launchMode= “속성”></>

속성은 총 4가지로

 

standard : Stack 영역 중 모든 곳에 위치 할 수 있으며 복수의 인스턴스가 생성 가능합니다.

 

singleTop : Stack 영역 중 모든 곳에 위치 할 수 있으며 복수의 인스턴스가 생성 가능합니다.

호출한 Activity와 최상위 Activity가 동일한 경우 최상위 Activity가 재사용되고, 기존 최상위 Activity는 pop() 처리됩니다.

 

singleTask : Root Activity로만 존재하며 하나의 인스턴스만 생성 가능합니다.

다른 Activity 실행시 동일 Task 내에서 실행 가능합니다.

 

singleInstance : Root Activity로만 존재하며 하나의 인스턴스만 생성 가능합니다.

Task 내에 해당 Activity 하나만 속할 수 있으며, 다른 Activity를 실행시키면 새로운 Task가 생성되어 그 Task에 포함되게 됩니다.

 

Source Code

kotlin

val intent = Intent(this, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

 

java

Intent intent = new Intent(this, MyActivity.class);

intent.addFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 

다른 속성은 아래 Android developers 래퍼런스를 확인해주세요

developer.android.com/reference/android/content/Intent