You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何onActivityResult函数无法重写?提示override修饰符不适用于局部函数

解决onActivityResult无法重写的问题

错误原因分析

提示Modifier 'override' is not applicable to 'local function'的核心原因是:你把onActivityResult定义成了局部函数——也就是写在了另一个函数(比如onCreate())的内部,而override修饰符仅适用于类的直接成员方法,不能用于嵌套在其他函数里的局部函数。

解决步骤

  1. 调整方法位置
    把onActivityResult方法移到类的直接作用域下,和onCreate、onStart等生命周期方法处于同一层级,不要嵌套在任何其他函数内部。

  2. 校验方法签名
    确保方法签名和父类的完全一致,以Kotlin为例,正确的签名应该是:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // 这里编写你的业务逻辑
    }
    

    (如果是Java,签名为@Override protected void onActivityResult(int requestCode, int resultCode, Intent data))

  3. 可选:迁移到官方推荐的新API
    如果你使用的是AndroidX组件,建议放弃onActivityResult,改用registerForActivityResultAPI,这是官方推出的替代方案,能更好地处理生命周期,避免此类问题。

内容的提问来源于stack exchange,提问作者Anshuman Sahoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:25:44