안드로이드 화면스택 전체 제거
안드로이드 화면은 스택형식으로 쌓이게 된다.
- 출처 https://jungwoon.github.io/android/2019/07/15/Activity.html
회원가입에서 close버튼을 누르면 기존에 스택을 모두 비우고 로그인 화면으로 돌아가게 만들어보자.
intent를 이용해 LoginActivity로 이동하면 back버튼을 눌렀을때 다시 회원가입으로 돌아가는 문제가 생겼다.
그러다가 이런 옵션을 발견했다.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP) //액티비티 스택제거
FLAG_ACTIVITY_NEW_TASK : 새로운 TASK를 생성합니다.
FLAG_ACTIVITY_CLEAR_TASK : 현재 TASK를 비웁니다.
FLAG_ACTIVITY_CLAER_TOP : 호출하려는 액티비티가 이미 스택에 쌓여있을 때, 새로 인스턴스를 생성하지 않고 기존의 액티비티를 포그라운드로 가져옵니다. 그리고 액티비티스택의 최상단부터 포그라운드로 가져올 액티비티까지의 모든 액티비티를 삭제합니다.
되긴 된다.
근데 이 옵션은 기존의 스택을 사용하는게 아니라 새로운 스택을 만들어서 새출발하는 형식이였던것.
새로운 스택을 만드는 방식이 아니라 기존 스택을 비우는 방법인 finishAffinity()를 사용하면 된다.
var intent = Intent(this,가고자하는액티비티 ::class.java)
finishAffinity()
startActivity(intent)
Author And Source
이 문제에 관하여(안드로이드 화면스택 전체 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dooooreeee/안드로이드-화면스택-전체-제거저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)