안드로이드 스튜디오

[안드로이드 스튜디오 코틀린] 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
반응형