티스토리 뷰

반응형
SMALL

Android Activity의 4가지 런치모드에는 다음과 같이 존재한다.

Standard

SingleTop

SingleTask

SingleInstance

 

Standard방식

일반적인 모드다. 동일한 액티비티던 다른 액티비티던 계속 엑티비티 스택에 쌓아 올린다.

 

SingleTop방식

statndard 모드와 다르게 "최상위 스택에 있는 엑티비티"를 또 다시 호출할경우 새로 스택에 쌓지않고 기존에 있는 액티비티를 재활용하고 이때 해당 엑티비티 (그림에서 A) 는 onNewIntent() 메서드가 호출되고 새로운 intent 를 넘김으로써, 엑티비티가 다시 호출 됬음을 알린다. 이때 주의할 점은 "최상위 스택"에 있지 않는 엑티비티의 경우 그냥 standard 모드 처럼 새로운 엑티비티가 생성되고 스택에 쌓인다. 

 

SingleTask방식

singleTask 모드로 설정된 액티비티는 오직 엑티비티 스택의 "루트" 에만 존재 할수 있다. 다시 말하자면 singleTask 로 설정된 액티비티를 호출하게되면 새로운 태스크가 생성되고 여기서 새로운 스택의 루트로써 스택이 쌓여지게 되고, singleTask 로 설정된 액티비티에서 다른 액티비티를 호출할경우 그 액티비티는 새로 생성된 Task 위에 쌓이게 된다.

만일, "기존 액티비티를 호출할 경우" 에서 처럼 이미 존재하는 액티비티를 호출할경우 singleTop 에서 처럼 해당 액티비티가 재활용되고 이때 onNewIntent() 가 호출된다.

 

SingleInstance방식

singleTask 과 동일하게 액티비티 호출시 항상 새로운 태스크가 생성된다. 하지만 여기서 차이점은 singleTask 는 새로운 태스크에 2~3~ 이상의 액티비티 스택을 쌓을수 있는 반면, singleInstance는 오직 하나의 태스크에 하나의 액티비티만 존재 할수 있다.

반응형
LIST
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함