接口回调本质就这么简单

接口回调在Java中用于处理耗时操作如网络请求,允许将数据返回主线程。文章通过实例解释了接口回调的工作原理,展示了如何在主线程中更新UI。回调接口在点击按钮时触发网络下载,下载完成后通过接口将Bitmap数据传回主线程并显示在ImageView上。
摘要由CSDN通过智能技术生成

一、为什么会有接口回调?什么是接口回调?

其实这两个问题是一个问题,知道了接口回调的原理自然就知道了为什么会有这么个东西。我们知道java中接口是不可以直接创建实例的,那么问题来了,假如我把一个接口声明为一个变量,那么我执行这个接口中的方法,接口没有实例它该怎么办呢?啊哈,这里自然又改出现java中的另一个特性---“多态”,这时java虚拟机自然会去找其子类,调用其子类中已经重载的该方法,这里就是接口回调的本质!!我们只需要给该变量指向其子类的地址就可以在调用的时候知道调用子类的方法。那么我们就可以在A类中创建接口的子类实例,在B类中创建一个接口的变量,把A类的地址传给B类的变量,在变量执行接口中的方法的时候就会调用A类中重写的方法,这就是接口回调的执行步骤。我们在网络请求等耗时的操作的时候会使用到该机制,用来把得到的数据传回主线程中。

二、使用实例

下面我们就来用一个网络请求的实例来演示如何使用该机制,为了尽量的减少代码,使主要代码能够突出,里面的一些不必要的容错代码就没有写了,大家在正式的项目中希望可以做好容错处理。

我们用一个按钮和一个imageView来演示,当点击按钮的时候去下载数据,在数据下载完成之后使用接口回调把数据传回来显示在imageview中。效果如下:


布局文件很简单就不在贴出来了,我们有3个类,一个是回调的接口,一个是主activity,一个为执行下载并且把数据回调回来的Callee类,下面来看接口类:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值