FinishAndRemoveTask
-
API Level 16 (Android 4.1, JB) 에 추가된 API
호출하는 Activity 기준 본인 포함 현재 task 의 '하단'에 있는 모든 Activity 를 종료시켜준다.
-
Activity Call Stack : A -> B -> C
C에서 finishAffinity() 를 호출하면 A, B, C 가 모두 destroy 된다.
-
Activity Call Stack : A -> B -> C
B 에서 handler 를 통해 delay 를 주면서 finishAffinity() 호출하면 A, B 가 destroy 되고 C 는 destroy 되지 않고 살아있는다.
호출하는 Activity 기준 '하단' 만 종료됨에 유의하자.
-
참고자료 : https://developer.android.com/reference/android/app/Activity#finishAndRemoveTask()
FinishAffinity
-
API Level 21 (Android 5.0, LOS) 에 추가
호출하는 Activity 가 taskRoot 일 경우 본인 포함 위에 쌓여있는 task 의 activity 들을 모두 종료시킨다.
taskRoot 가 아닐 경우 본인만 종료된다.
-
Activity Call Stack : A -> B -> C
B에서 handler 로 delay 를 주어 finishAffinity() 를 호출하면 B 만 destroy 되어
A -> C 형태의 stack 이 남는다. (본인만 종료)
-
Activity Call Stack : A -> B -> C
A에서 handler 로 delay 를 주어 finishAndRemoveTask() 를 호출하면 A, B, C 모두 destroy 된다.
-
참고 자료 : https://developer.android.com/reference/android/app/Activity#finishAffinity()
끝
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] WebChromeClient 의 file upload (1) | 2021.01.29 |
---|---|
[android] 국제화 text style 입히기 (0) | 2021.01.27 |
[android] context 마스터 하기! (0) | 2021.01.26 |
[android] ViewModel & LiveData 의 pattern & anti-pattern (0) | 2021.01.22 |
[android] ViewModel 에 대해 알아보자 (0) | 2021.01.21 |
댓글