Android关于回调函数的定义及用法
2016-04-01 23:20
573 查看
我们在平时做项目的过程中经常会用到回调函数,对于做Android的可能大家对回调函数都不陌生,像点击事件,触摸事件,生命周期等等都用到了回调函数。
所谓的回调函数其实用容易理解的话讲就是“当什么什么的时候调用”,例如:当点击的时候调用,当触摸的时候调用,当创建的时候调用。
今天做个小的案例,来演示一下回调函数,并且让大家理解一下一般在什么情况下可能会用到这种回调函数的定义。
首先创建项目,整个Demo就只有这四个文件
先看一下DataCallBack回调接口的定义
布局文件就只是一个TextView
下面是MainActivity
再看一下RequestTest的定义
看到这里相信大家已经清楚了,我给大家再理一下思路:
1)在MainActivity中定义回调函数,创建RequestTest对象
2)在RequestTest构造方法中接收回调对象
3)当网络请求成功时,再回调acceptData(int num)的方法
4)在回调方法acceptData(int num)中通知Handler主线程更新界面
以上只是说一下大概的思路及应用场景,落实到具体项目中,用法及参数会因需求不同而各异,也会更复杂,以上仅供参考
所谓的回调函数其实用容易理解的话讲就是“当什么什么的时候调用”,例如:当点击的时候调用,当触摸的时候调用,当创建的时候调用。
今天做个小的案例,来演示一下回调函数,并且让大家理解一下一般在什么情况下可能会用到这种回调函数的定义。
首先创建项目,整个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主线程更新界面
以上只是说一下大概的思路及应用场景,落实到具体项目中,用法及参数会因需求不同而各异,也会更复杂,以上仅供参考
相关文章推荐
- 【转载】Android Studio 设置内存大小及原理
- android mina 客户端无法接收信息的原因
- Android布局控件之LinearLayout详解
- Android回调函数机制那点事
- Android Studio R文件丢失
- android布局 FrameLayout(帧布局)详解
- Android数据库事件的回滚
- Fragmen的生命周期及简单通信
- Android 放图片背景的时钟
- AndroidStudio使用札记
- Android焦点分析之View
- Android OTA 升级之二:脚本 ota_from_target_files
- Android MediaPlayer 音乐播放
- android 编译OTA升级包介绍
- jdb 调试android 简介
- Android Handler Memory Leak
- Android开发 自定义控件 边框TextView
- [android] 加载大图片到内存
- 解决Android Studio添加依赖时出现“Manifest merger failed”错误
- android自定义view实现公章效果