안드로이드 스튜디오
[안드로이드 스튜디오 코틀린] OnBackPressed Deprecated 대처 방법 (val, lateinit var)
권송미
2024. 1. 10. 09:22
728x90
반응형
안드로이드 WebView를 사용할 때 BackPressed를 사용하는데 deprecated됐다.
방법 두 가지가 있다 !
1. val 로 만들기
private val onBackCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if () {
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// onCreate에 넣어준다.
this.onBackPressedDispatcher.addCallback(this, onBackCallback)
}
2. lateinit var 로 만들기
- 늦은 초기화를 사용해서 함수로 따로 만들어준다. -> 함수로 따로 만들지 않고 onCreate에 바로 넣어도 된다.
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var onBackPressedCallback: OnBackPressedCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
initOnBackPressedCallback()
}
private fun initOnBackPressedCallback() {
onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if () {
}
}
}
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
}
728x90
반응형