-
반응형
안녕하세요, 하루플 입니다😋
안드로이드에서 화면을 구성할 때 Activity와 Fragment의 역할과 생명주기는 아주 중요합니다.
화면 이동을 위해 Activity를 Intent로 단순히 계속 이동하면 메모리에 Activity 스택이 계속 쌓이게 됩니다.
그래서 화면상 굳이 이전 화면을 저장할 필요가 없을 때는 이전 Activity를 종료해주는 것이 앱 메모리 관리에 효과적입니다.
그림이 너무 허접해 죄송합니다..😰
대충 알아보시겠죠..? Activity가 총 4개가 실행되어 있습니다.
여기서 onBackPressed 메소드를 실행하면 이전 화면으로 돌아가면서 현재 있던 Activity가 종료되게 됩니다.
(onBackPressed는 안드로이드 뒤로가기를 누르면 실행되는 메소드 입니다.)
onBackPressed 후 액티비티가 3개로 줄었습니다.
하지만 액티비티를 어떠한 경우로 인해 한번에 종료하고 싶을 때가 있습니다.
예를들어 회원가입 과정에서 여러 화면을 사용한다고 가정해보겠습니다.
아이디 입력화면 -> 비밀번호 입력화면 -> 회원가입 완료
이런 경우 회원가입 완료 화면에서 앞의 화면 두개를 한번에 종료해야겠죠?
이 때 사용할 수 있는 것이 Intent의 내장 함수인 FLAG 입니다.
화면을 넘길때 사용한 Intent 부분에 아래처럼 setFlags 코드를 추가로 적용해주면 화면을 넘길때 Activity 정보가 저장되지 않으면서 모든 액티비티의 정보가 날아가게 됩니다.
JAVA
Intent i = new Intent(this, MainActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(i);
Kotlin
val i = Intent(this, MainActivity::class.java) i.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK startActivity(i)
Intent 의 FLAG_ACTIVITY_NEW_TASK 와 FLAG_ACTIVITY_CLEAR_TASK를 사용해 위 그림처럼 Activity 정보를 초기화할 수 있었습니다.
Intent의 내장 메소드에 대해 더 찾아보려면 안드로이드 공식 문서를 참고하시면 됩니다 😄
다른 궁금한 점 있으면 댓글 부탁드립니다. 답변드리겠습니다~!
https://developer.android.com/reference/android/content/Intent
반응형'개발 > Android' 카테고리의 다른 글
안드로이드스튜디오 Activity에서 다른 Activity 변수/함수 접근하기 (0) 2022.06.14 안드로이드스튜디오 자바를 코틀린으로 번역하는 가장 쉬운 방법! (Convert Code From Java) (0) 2022.06.13 안드로이드스튜디오 String, Color 리소스 제대로 사용하는 방법 (0) 2022.06.12 안드로이드스튜디오 뒤로가기 두번 클릭 시 Activity 종료 (onBackPressed) (0) 2022.06.09 안드로이드스튜디오 기본 설정 앱 알림 접근/알림 표시 상태 확인/알림창 띄우기 (0) 2022.06.08 댓글