Android关于回调函数的定义及用法

我们在平时做项目的过程中经常会用到回调函数,对于做Android的可能大家对回调函数都不陌生,像点击事件,触摸事件,生命周期等等都用到了回调函数。

所谓的回调函数其实用容易理解的话讲就是“当什么什么的时候调用”,例如:当点击的时候调用,当触摸的时候调用,当创建的时候调用。

今天做个小的案例,来演示一下回调函数,并且让大家理解一下一般在什么情况下可能会用到这种回调函数的定义。

首先创建项目,整个Demo就只有这四个文件
这里写图片描述

先看一下DataCallBack回调接口的定义
这里写图片描述

布局文件就只是一个TextView
这里写图片描述

下面是MainActivity

public class MainActivity extends Activity{

    private TextView text;
    //创建Handler对象,用于主线程更新界面
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.arg1) {
            case 1:
                text.setText("我是数据1请求成功并更新界面");
                break;
            case 2:
                text.setText("这里是数据2请求成功并更新");
                break;
            default:
                break;
            }
        }
    };
    //创建回调函数,并实现方法
    private DataCallBack dc = new DataCallBack() {
        @Override
        public void acceptData(int num) {
            Message msg = Message.obtain();
            msg.arg1 = num;
            handler.sendMessage(msg);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        text = (TextView)findViewById(R.id.text);
        //创建请求数据类对象,将回调对象作为参数传过去
        RequestTest req = new RequestTest(dc);

    }

}

再看一下RequestTest的定义
这里写图片描述

看到这里相信大家已经清楚了,我给大家再理一下思路:
1)在MainActivity中定义回调函数,创建RequestTest对象
2)在RequestTest构造方法中接收回调对象
3)当网络请求成功时,再回调acceptData(int num)的方法
4)在回调方法acceptData(int num)中通知Handler主线程更新界面

以上只是说一下大概的思路及应用场景,落实到具体项目中,用法及参数会因需求不同而各异,也会更复杂,以上仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值