Android开发非常实用的技术 - 回调
来源:互联网 发布:物联网 人才需求数据 编辑:程序博客网 时间:2024/05/29 15:43
明朝朱棣夺位当上皇帝后,他的侄子建文帝朱允炆下落不明,朱棣曾派人秘密寻找,一个是下西洋的郑和,另一个是胡濙?可是直到死前朱棣才得到胡濙带回的答案—–《明朝那些事》
明成祖朱棣吩咐胡濙去做一件事,然后明成祖就去处理其它国家政事了,这期间明成祖朱棣可以不用关心胡濙。直到胡濙做完了,胡濙才主动汇报给朱棣。胡濙的汇报,就相当于android里的回掉了。
实例:熊大问熊二1+1=?,熊二一时也不知道答案,想了1分钟才告诉熊大答案是2。
(一)这里通过接口的方式实现。
/** * 我是熊大,我是一个Activity,问问题 */@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //熊大问熊二: 1+1 = ? BearTwo.excute(1, 1, new BearTwo.Response() { @Override public void rightResponse(int value) { System.out.println("答案是:" + value);//熊二算出来了就主动告诉我,不用我去等待答案,不论是立刻还是1分钟后 } @Override public void errorResponse(String err) { System.out.println("答案是:" + err);//熊二算出来了就主动告诉我,不用我去等待答案,不论是立刻还是1分钟后 } });}
/*** 我是熊二,我是一个类,回答问题*/public class BearTwo { public static void excute(int one, int two, Response response) { try { //。。。 //算了1分钟... int resulte = one + two; response.rightResponse(resulte); //算出来了 } catch (Exception e) { response.errorResponse("算不出"); //算不出来 } } public interface Response { public void rightResponse(int value); public void errorResponse(String err); }}
通过接口回调的方式至此已经全部完成。
通过接口回调的方式至此已经全部完成。
通过接口回调的方式至此已经全部完成。
(二)这里通过抽象类的方式实现。
//一个抽象类,里面的抽象方法子类必须实现,如果不实现则必须子类也定义成抽象类public abstract class BaseCalculation { public abstract void rightResponse(int value); public abstract void errorResponse(String err);}
//继续看熊二,我是一个类,我来回答问题,我继承自一个抽象类//方式一中是有接口哦,这里没有~,注意这就是差别哦public class BearTwo extends BaseCalculation{ public void excute(int one, int two) { try { //算了1分钟后... int value = one * one; rightResponse(value); //算出来了 } catch (Exception e) { errorResponse("err"); //算不出来 } } @Override public void rightResponse(int value) { } @Override public void errorResponse(String err) { }}
//最后看看雄大怎么来问问题呢@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BearTwo bearTwo = new BearTwo() { @Override public void rightResponse(int value) { edtResult.setText("熊二的答案是;" + value); //熊二算出来了就主动告诉我,不用我去等待答案,不论是立刻还是1分钟后 } @Override public void errorResponse(String err) { edtResult.setText("熊二的答案是;" +err); //熊二算出来了就主动告诉我,不用我去等待答案,不论是立刻还是1分钟后 } }; bearTwo.excute(1, 1);//开始提问1+1=?,可以任何时候通过bearTwo.excute(1,1)问哦}
总结:这两种回调都非常有用,比如常见的应用在网络请求中,由于网络质量原因,我们并不清楚什么时候服务器才返回数据。而我们不能让用户一直卡在这里等待服务器的返回。所以最好的方式就是服务器返回了数据我们就解析,而不用去等待返回,其余时间用户完全可以干其它的操作。
*最后的最后看一张效果图
在界面中计算两个数的加法和乘法,逻辑部分在Acitiviy(熊大)中实现,而具体计算则在一个类中实现(熊二),然后将结果回调给Ativity。
1 0
- Android开发非常实用的技术 - 回调
- android 开发非常实用的网站
- android 开发非常实用的网站
- 几个非常实用的Android开发工具
- 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源
- Android 一些非常实用的 Android 开发资源
- 一些非常实用的 Android 开发资源( 开源框架)
- 一些非常实用的 Android 开发资源 【转】
- Android 日常开发中,两个非常实用的布局技巧
- Android 日常开发中,两个非常实用的布局技巧
- Android开发实用的技术博客集合
- FSCapture -- Web开发非常实用的辅助工具
- 非常实用的Android模拟器CMD命令
- driver_register 的整个过程
- ListView多个item能同时被按下的解决办法
- 定时任务
- java实现二分查找(迭代)
- 目标赋予生命的意义和目的
- Android开发非常实用的技术 - 回调
- python 操作postgresql
- python 处理图片验证码
- irepot常见问题
- 为什么我们给父母的耐心总是那么少?
- Android Activity初识
- RPM包安装出现conflicts with file from package
- Ubunt NFS 服务器客户端配置方法
- java.lang.IllegalArgumentException: Illegal character (U+0) 待解决的主题