dev/aos

[AOS] onBackPressed

donguran 2024. 1. 22. 11:00
728x90
반응형

default onBackPressed() function is deprecated in API33.

 

but onBackPressed() function is in Activity.

if you want use onBackPressedDispatcher that is in ActivityCompat class.

 

create instance backpressed callback

    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
    private val onBackPressedCallback = object: OnBackPressedCallback(true) {
        override fun handleOnBackPressed() {
            NLog.d("onBackPressedCallback..")

            finish()
        }
    }

 

 

register backpressed callback

use onBackPressedDispatcher

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        NLog.d("onCreate..")

        setContentView(R.layout.activity_sub)

		...

        // onBackPressed
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
        }
    }

 

 

default onBackPressed()

@Override
public void onBackPressed() {
   /*if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
      if (mWebView.canGoBack()) {
         mWebView.goBack();
      } else {
         showExitDialog();
      }
      // super.onBackPressed();
   }*/
728x90
반응형