안드로이드, activity flag 이야기 |
참조 : http://developer.android.com/reference/android/content/Intent.html
FLAG_ACTIVITY_SINGLE_TOP
B 에 해당 flag 를 걸어 두었다면..
A->B->B 를 호출한 경우, 최종 stack 은
B
A
이 때 B의 생명주기는
onPause() -> onNewIntent() -> onResume() 을 탄다.
FLAG_ACTIVITY_NO_HISTORY
마찬가지로 B 에 flag 를 걸어 두어두고
A->B->A 를 호출한 경우, 최종 stack 은
A
A
이 flag 는 다른 앱으로 전환되는 경우에도 destory 된다. 즉 A->B 상태에서 Home 키로 나가면 B 는 이미 destory 된 상태.
이 녀석은 다이얼로그나 알람형 activity 등에 사용하기가 좋다.
FLAG_ACTIVITY_REORDER_TO_FRONT
이 녀석은 괴짜로, 유일하게 stack 을 뒤엎어버린다.
이번에는 A 에 이 flag 를 걸어두고,
A->B->A 를 호출한 경우, 최종 stack 은
A
B
마지막 A 를 호출할때, 가장 아래 있던 A 가 Front 로 올라온다.
FLAG_ACTIVITY_CLEAR_TOP
이번에도 A 에 이 flag 를 걸어두고,
A->B->A 를 호출한 경우, 최종 stack 은
A
가장 아래 깔려있던 A 가 위의 녀석들을 clear 하면서 launch 되는 것. 이 때 기존에 있던 A 가 그대로 떠오르는게 아니라, destory & create 의 life cycle 을 겪는다. 이를 막고 싶다면, FLAG_ACTIVITY_SINGLE_TOP 을 함께 섞어서 사용해주어야 한다. 이 경우에는 onNewIntent routine 을 타게 된다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Animation 시 WebView Drawing 이 제대로 안 되는 현상. (2) | 2013.08.17 |
---|---|
[Java] Interface 에서 몰랐던 사실. 상수 정의. (0) | 2013.08.16 |
[Java] URLConnection 이야기 (0) | 2013.08.14 |
[android] Toast( 토스트 ) 이야기 (0) | 2013.08.14 |
[Java] ClassPath 에 대한 이야기. (0) | 2013.08.13 |
댓글