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

Android:MainActivity实现AsyncResponse接口时访问权限不足错误

解决AsyncTask回调的编译错误 & 获取结果到MainActivity

Hey there! Let's tackle your problem step by step. First, that compile error is a straightforward access modifier issue—here's what's going on and how to fix it:

错误原因解析

接口AsyncResponse中的processFinish方法默认是public的(Java接口里的所有方法默认都是public abstract)。而你在MainActivity中实现这个方法时,没有添加public修饰符,默认是包级访问权限,这比接口方法的权限更弱,Java不允许这种"降低访问权限"的实现,所以编译器报错了。

修复代码

只需要给MainActivity里的processFinish方法加上public修饰符即可:

修改后的MainActivity关键代码

@Override
public void processFinish(ArrayList<String> output){
    // 现在你可以在这里拿到AsyncTask返回的ArrayList了
    // 比如做验证操作:
    if(output != null && !output.isEmpty()){
        Log.d("MainActivity", "获取到的内容行数:" + output.size());
        // 传递给其他类处理,比如:
        // SomeOtherClass.handleHosts(output);
    }
}

额外小提示(针对新手)

  • 确保AsyncResponse接口的包路径正确,fetchHosts类能正确引用到它
  • 从API Level 30开始,AsyncTask已经被官方弃用了,如果是新项目,更推荐使用Kotlin协程或者OkHttp + 线程池来做网络请求,但如果你是在学习旧的Android开发模式,当前的方案是没问题的
  • 网络请求别忘了在AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.INTERNET" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:56:29