-
[Android] Back 버튼 조절 onBackPressedDispatcherAndroid📱 2023. 2. 21. 01:18
Android Back Button
안드로이드에는 백버튼이 존재한다.
만약 서버 요청, 디비 저장 등 시간이 걸리는 작업을 하는 화면이라서 업 버튼을 없앴다고 하더라도 유저가 백버튼을 눌러 뒤로가기를 실행할 수도 있기 때문에 이를 막거나
요즘 많이 보이는 두 번 눌러야 앱을 종료 시키는 등의 흐름을 수행해야 하는 경우가 있을 수도 있다.
이럴 때 보통 많이 보이는 글은 activity에 onBackPress() 함수를 override 해서 해결하는 내용의 글이 많다.
하지만 실제로 해보면
Deprecated 되어 있는 것을 확인 할 수 있다.
Use OnBackInvokedCallback or androidx.activity.OnBackPressedCallback to handle back navigation instead.
공식문서에도 33부터는 사용하지 않는다고 하니 수정이 필요하다.
공식 문서에 나온 방식에 따르면 OnBackInvokedCallback, androidx.activity.OnBackPressedCallback를 이용하라고 나와있다.
이 두 방식을 사용하면 시스템이 뒤로가기를 처리하는 걸 개발자가 대신 처리할 수 있도록 도와준다.
방법
onBackPressedDispatcher.addCallback
방식은 간단하다
addCallback 함수를 이용해서 OnBackPressedCallback를 달아주거나
onBackInvokedDispatcher.registerOnBackInvokedCallback
onBackInvokedDispatcher에 registerOnBAckInvokedCallback에 뒤로가기를 눌렀을 때 하고 싶은 액션을 넣어 주면 된다.
만약 fragment라면 activity에서 찾아주면 된다.
다만 아래 방식은 버전 별 분기처리가 필요하니 참고
참고
https://developer.android.com/reference/android/app/Activity#onBackPressed()
https://developer.android.com/reference/android/window/OnBackInvokedCallback
https://developer.android.com/reference/androidx/activity/OnBackPressedCallback
'Android📱' 카테고리의 다른 글
[Compose] ML kit으로 바코드 읽고, OCR을 해보자 (0) 2023.05.04 Android Full Screen 화면 만들기~~~ (0) 2023.03.20 [Android] 앱 언어 변경 (0) 2023.02.15 @JvmStatic 어노테이션 (0) 2023.01.08 Compose 상태관리 Stateful...? (0) 2022.10.25