본문 바로가기
공부/안드로이드

Activity launchMode

by 단순한 프로그래머 2025. 9. 3.

안드로이드 Manifest에서 Activity를 선언할 때 설정할 수 있다.

이 launchMode는 Activity에서 Activity로 전환시 기본은 스택에 쌓이는 구조인데

이 옵션에 따라서 Activity가 스택에 쌓이는 형태가 달라질 수 있다.

 

설정값 의미
standard 스택에 Activity를 쌓는 기본 방식
singleTop 가장 나중에 쌓인 Activity가 실행 될 Activity와 중복된다면 재사용
singleTask 1개의 task에는 1개의 Activity만 존재
없을 경우는 신규 task를 생성
이미 있을 경우 위에 존재하는 Activity를 제거 후 재사용
singleInstance 1개의 task에 1개의 Activity만 존재하고 쌓일 수 없음
singleTask와 달리 Activity가 쌓일 수 없고
없을 경우는 신규 task를 생성
이미 있을 경우 기존 task를 재사용

 


1. standard

매번 Activity를 실행할 때마다 스택에 쌓는 기본 방식

 

A -> B -> B -> A

 


 

2. singleTop

스택의 가장 위에 같은 Activity가 있다면 재사용한다.

맨 위가 아니면 새로운 Activity가 추가

재사용 될 경우 onNewIntent()가 호출

A -> B -> B -> A

 


3. singleTask

스택에 Activity가 있으면 그 위의 모든 Activity를 제거하고 기존 Activity를 재사용

스택(task)에 하나만 존재

A -> B -> C -> D -> B

 


4. singleInstance

singleInstance로 설정 된 Activity는 스택(task)에 혼자만 실행된다.

난 실무에서 하나의 장비를 사용하는 Activity인 경우 사용했었다.

A - standard

B - standard

C - singleInstance

D - singleInstance

A -> B -> C -> D