个人对回调函数的理解
2013-09-26 20:10
148 查看
回调方法一般都是通过一个接口类去实现,接口类作为方法的参数传递进去,接口中的方法的参数值就是返回给我们的值,我们可以定义返回值,去完成我们的需求。有了这个接口类,我们就可以动态的方法的执行过程,比如有这样的一个需求,要实现复制文件的时候实现进度条,如果这个时候用回调的方法就很容易实现,而不是苦恼于怎样去在两个类之间进行传参数
比如下面有这样的一个复制文件的方法
/**
第一个参数:是要复制的文件
第二参数:是要复制到的路径
第三个参数:是一个接口类,实现的是监听复制文件过程
**/
Public Boolean CopyFile(FilecopyFile,String savePath, CopyDataListenerlistener){}
Publicinterface CopyDataListener {
//监听过程一:是文件开始复制
void on Copy Start();
//监听过程二:是文件复制过程
//第一个参数:是文件复制的当前长度
//第二个参数:是文件的总长度
void onCopying(long
currentLong, long fileLong);
//监听过程三:文件复制完成
void onCopyComplete(long fileLong);
}
这个监听类是一个自定义的接口类,里面的三个方法是模拟文件复制的三个过程,“开始复制”,“复制进行”,“复制结束”,在这三个方法里面的参数是根据实际的开发需要来设定,比如现在,我要实际进度条的更新,我就可以在“复制进行”这个过程中不断的更新进度条,从而达到进度条更新的效果。当然我们也可以按照平常的思路,将进度条作为参数传递过来,也可以实现进度条更新的效果,但是这是不推荐的方法。
又比如有这样的一个需求我们要上传文件
可以控制文件上传的暂定,开始,取消的操作
这就需要我们动态的控制线程,去帮我们实现要做的事
总的来说回调函数的好处:
1. 可以动态的监听所执行的方法
2. 你可以在方法执行的过程中返回你想要的值。
比如下面有这样的一个复制文件的方法
/**
第一个参数:是要复制的文件
第二参数:是要复制到的路径
第三个参数:是一个接口类,实现的是监听复制文件过程
**/
Public Boolean CopyFile(FilecopyFile,String savePath, CopyDataListenerlistener){}
Publicinterface CopyDataListener {
//监听过程一:是文件开始复制
void on Copy Start();
//监听过程二:是文件复制过程
//第一个参数:是文件复制的当前长度
//第二个参数:是文件的总长度
void onCopying(long
currentLong, long fileLong);
//监听过程三:文件复制完成
void onCopyComplete(long fileLong);
}
这个监听类是一个自定义的接口类,里面的三个方法是模拟文件复制的三个过程,“开始复制”,“复制进行”,“复制结束”,在这三个方法里面的参数是根据实际的开发需要来设定,比如现在,我要实际进度条的更新,我就可以在“复制进行”这个过程中不断的更新进度条,从而达到进度条更新的效果。当然我们也可以按照平常的思路,将进度条作为参数传递过来,也可以实现进度条更新的效果,但是这是不推荐的方法。
又比如有这样的一个需求我们要上传文件
可以控制文件上传的暂定,开始,取消的操作
这就需要我们动态的控制线程,去帮我们实现要做的事
总的来说回调函数的好处:
1. 可以动态的监听所执行的方法
2. 你可以在方法执行的过程中返回你想要的值。
相关文章推荐
- c语言 ,回调函数[个人理解]
- 个人对回调函数的理解(personal understanding of callback function)
- jQuery的before()方法的超简易版,用于个人理解源码以及回调函数
- 对回调函数的个人理解
- 回调函数,监听函数 关系 个人学习理解
- 关于回调函数的个人理解
- Java中回调函数个人理解
- 理解回调函数与jsonp的原理(个人理解)
- 个人理解的在线推荐
- 关于Condition的个人理解
- 事务性/一致性的个人理解
- java理解“回调函数”
- Log4j的基本配置和个人理解
- php 类中的__get()和__set() 个人理解
- CodeIgniter部分个人理解
- select/poll/epoll之间的区别总结(个人理解)
- TensorFlow的个人理解
- 个人理解的爱情shi什么?
- 透彻理解Java回调函数
- 关于位域个人理解