参考文档:https://developer.android.com/reference/androidx/activity/OnBackPressedDispatcher
最近在使用fragment,需要在fragment中处理back事件,除了传统百度的fragment处理back事件方法外,发现了一种新的处理onbackPressed的方法,记录一下。
在onAttach方法中:
@Overridepublic void onAttach(@NonNull Context context) {super.onAttach(context);callback = new OnBackPressedCallback(true // default to enabled) {@Overridepublic void handleOnBackPressed() {showBackInfo();}};requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);}public void showBackInfo() {Log.e(TAG, "showBackInfo: " + " fragment back info.");if (callback != null){callback.setEnabled(false);}requireActivity().getOnBackPressedDispatcher().onBackPressed();}如果消耗掉了back事件 则不需要setEnable(false)