在 Intent 中覆盖 OnActivityResult 不起作用 - kotlin

Override OnActivityResult inside Intent is not working - kotlin

我正在覆盖我的 OnActivityResult 以控制应用程序中的某些流程。

报错的问题是overriding nothing

这是我正在使用的代码:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
}

当我在 Intent 之后添加非空保护时错误才消失,代码如下:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
}

但这会导致函数本身出现 kotlin.KotlinNullPointerException 错误。

方法 onActivityResult 的签名是:

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)

如您所见,Intent data 可以为空。因此,为了正确覆盖该方法,您必须使用:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)

由于数据可以为空,因此每次需要检查意图时都必须使用安全调用运算符?

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    val action = data?.action
    ...
}