我正在运行我的Android应用程序`Android-13,在Logcat中我看到了这个警告,如何解决这个问题?
OnBackInvokedCallback is not enabled for the application.
Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
这是因为Android手势导航,这里的参考链接
为了帮助预测性背部姿势对用户有用且一致,我们通过添加新的API和弃用现有的API,转向了背部事件处理的提前模型。
新的平台API和AndroidX Activity 1.6+的更新旨在使您从不受支持的API(KeyEvent#KEYCODE_BACK和OnBackPressed(过渡到预测性背部姿势尽可能顺利。
新的平台API包括OnBackInvokedCallback
和OnBackInvokedDispatcher
,AndroidX Activity 1.6+通过现有的OnBackPressedCallback
和OnBackPressedDispatcher
API支持这两个API。
根据您现有的实现,您可以分两到四个步骤开始测试此功能。
- 升级至AndroidX活动1.6.0-alpha05。通过升级对AndroidX活动的依赖,已经在使用碎片和导航等
OnBackPressedDispatcher
API当您选择预测背部时,该组件将无缝工作手势
// In your build.gradle file:
dependencies {
// Add this in addition to your other dependencies
implementation "androidx.activity:activity:1.6.0-alpha05"
- 选择预测性背部姿势。通过在应用程序级别将EnableOnBackInvokedCallback标志设置为true来选择您的应用程序在AndroidManifest.xml中
<application
...
android:enableOnBackInvokedCallback="true"
... >
...
</application>
如果你的应用程序没有拦截返回事件,你就完成了步注意:选择加入在Android 13中是可选的,它将被忽略在此版本之后。
val onBackPressedCallback = object: OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
// Your business logic to handle the back pressed event
}
}
requireActivity().onBackPressedDispatcher
.addCallback(onBackPressedCallback)
- 当您的应用程序准备停止拦截系统Back事件时,禁用onBackPressedCallback回调
onBackPressedCallback.isEnabled = webView.canGoBack()
注意:您的应用程序可能需要使用平台API(OnBackInvokedCallback和OnBackPressedDispatcher(来实现预测性背部姿势。有关详细信息,请阅读我们的文档。