Today's

bad things at times, do happen to good people.

모바일 앱(안드로이드)

안드로이드 앱 만들기 : onBackPressed 가 deprecated 되었다니 ?

Billcorea 2023. 1. 6. 17:34
반응형

onBackPressed 가 deprecated 되었다?

이제 우리는 구글이 제안하는 안드로이드 13에 타기팅하는 앱을 제출 해야만 하는 시기에 도달하고 있습니다.  구글이 새로운 안드로이드 버전을 배포하기 시작하면서 오래된 안드로이드에 대한 게시를 제한 합니다. 

 

그래서 이번에 API 33 인 안드로이드 13에 타겟팅 하는 앱을 작성해 보았습니다. 그러다 만난 몇 가지 사용 제한이 되는 것들에 대한 정리를 해 두고자 합니다. 

 

onBackPressed는 사용자가 뒤로 가기 버튼을 클릭하는 경우 제어를 하기 위해서 사용했던 함수 입니다. MainActivity 에서 최종적으로 뒤로 가기를 클릭 하는 경우 앱을 종료시키는 기능도 사용이 되는 함수였는 데...

 

안드로이드 13에서는 더 이상 사용할 수 없는 (?)  - 사용은 가능 하나 소스 코드에 중간 줄이 생긴 모양을 보면서 코드를 지속적으로 봐야 합니다. 

 

onBackPressed

어떻게 해소를 하면 될까요?

 

CallBack을 하나 만들어 봅니다.

private val callback = object : OnBackPressedCallback(true) {
    override fun handleOnBackPressed() {
        doCloseApps()
    }
}

다른 건 없고 이런 모양으로 callback 함수를 하나 만들어 둡니다.  그러고 onCreate 에서 이 callback 이 호출 되도록 한 줄 넣어 주는 것으로 그 코딩은 마무리 됩니다. 

 

@RequiresApi(Build.VERSION_CODES.TIRAMISU)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    this.onBackPressedDispatcher.addCallback(this, callback)
 
 
 }

그리고 나서 callback에서 처리하고자 하는 코드를 작성하는 것으로 끝입니다. 

 

간단하죠?

반응형