android - 我必须在 RequestPermissionsResult 上调用 super.onRequestPermissionsResult(requestCode, permissions, grantResults) 吗?
问题描述
我有这段代码,我不确定是否应该super.onRequestPermissionsResult(requestCode, permissions, grantResults)
在 else 块中实现。我不知道为什么需要它。
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
READ_EXTERNAL_STORAGE_REQUEST_CODE -> {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
performAction()
} else {
Toast.makeText(this, "You cancelled the permission", Toast.LENGTH_SHORT).show()
}
}
else -> super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}
我已经看到在 Activity 中有这个方法的实现。做什么super.onRequestPermissionsResult(requestCode, permissions, grantResults)
?需要吗?
解决方案
目前没有必要,因为这个方法是空的。它只由你来处理烫发请求结果
但是您仍然应该保留super
call inelse
声明-在这种情况下以及所有其他类似的(覆盖的空方法)。你永远不知道 Android 团队何时在 Android 或 AndroidX lib 的源代码中引入了一些默认行为/回调句柄
推荐阅读
- android - 如何使用 react native 从多个类中重用 android 设备后退按钮处理程序组件?
- google-chrome - Ubuntu 18.04 - 如何使 Chrome 窗口可调整大小?
- python - 更改字段名称 itertuple 循环测试
- python - 卷积神经网络架构——对吗?
- mysql - 如何在mysql中创建数组类型的列?
- java - 如何完成一项活动,当你有一个膨胀的弹出窗口时
- android - 添加新片段时无法添加窗口
- api - 如何在 Leaflet 中更改请求 Tile URL?
- objective-c - 如何在文件中追加数组
- c# - ASP.NET Core 3.1 路由(Route、ActionName)本地化怎么做?