Android开发 java回调

Android开发 java回调

在Android Java中,回调是一种常见的设计模式,它允许一个方法(通常是一个接口的一部分)在某个事件发生时被调用。这种模式可以用于处理异步操作,例如按钮点击、数据加载完成、网络请求返回等。

以下是一个简单的回调示例:

首先,定义一个回调接口:

java 复制代码
public interface MyCallback {
    void onSuccess(String result);
    void onFailure(Exception error);
}

然后,创建一个使用这个回调的类:

java 复制代码
public class DataFetcher {
 
    private MyCallback callback;
 
    public DataFetcher(MyCallback callback) {
        this.callback = callback;
    }
 
    public void fetchData() {
        // 模拟长时间运行的任务
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    // 模拟数据获取成功
                    String data = "Data fetched successfully";
                    callback.onSuccess(data);
                } catch (Exception e) {
                    // 模拟数据获取失败
                    callback.onFailure(e);
                }
            }
        }).start();
    }
}

最后,在Activity或其他组件中实现并使用这个回调:

java 复制代码
public class MainActivity extends AppCompatActivity implements MyCallback {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        DataFetcher fetcher = new DataFetcher(this);
        fetcher.fetchData();
    }
 
    @Override
    public void onSuccess(String result) {
        // 处理成功的结果
        Log.d("Callback", "Success: " + result);
    }
 
    @Override
    public void onFailure(Exception error) {
        // 处理失败的异常
        Log.d("Callback", "Failure: " + error.getMessage());
    }
}

在这个例子中,DataFetcher 类负责执行某些长时间运行的任务,并在完成时通过回调接口通知调用者。MainActivity 实现了 MyCallback 接口,并在 DataFetcher 对象创建时传入自己,以便在数据获取成功或失败时接收通知。

相关推荐
\光辉岁月/27 分钟前
5.java-数组
java·开发语言
谢亮_vipxieliang43 分钟前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
郑州光合科技余经理1 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071571 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat1 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源1 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
HEJOO92 小时前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl2 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
EatFan3 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架