[Android] finish() vs finishAffinity()

Jini.Dev·2022년 6월 2일
0

finish()

현재 Activity종료, startActivityForResult()로 호출했다면 ActivityResult 전달


finishAffinity()

현재 스택에 있는 모든 Activity 종료
앱 종료시 Root Activity에서 finish()를 사용해서 종료해야 하지만, 이 함수를 사용하면 어느 Activity에서든 모든 부모 Activity를 닫을 수 있음


+) finishAndRemoveTask()

Activity종료후 Task Manager(최근 앱 사용 목록)에서도 해당 앱을 제거
Task를 종료할 뿐 process는 종료되지 않음.
finishAndRemoveTask()로 앱 종료후 재실행하면 Application class의 onCreate()거치지 않음


+) System.exit(0)

Kotlin 에서는 exitProcess(0)
Java Vitrual Machine 을 종료
Activity가 여러개일 경우 앱을 재시작하고 ActivityStack에서 한 단계 전인 상태로 뜬다
   ex) Activity-A에서 Activity-B 를 시작했고, Activity-B 에서 System.exit(0) 를 호출하면 앱이 종료됐다가 Actvity-A 가 즉시 시작






출처 및 참고 : https://m.blog.naver.com/realwind/221969639019

profile
정신 차려보니 개발자가 되어있었다.

0개의 댓글