这两天老师讲的都是基础,上课听听,下课就学自己学的,以前写Android的时候,比如在RecyclerViwe 中,官方为了使RecyclerView更加的灵活,没有向外边提供单击,长按Button的接口,所以这些东西写都需要自己进行定义接口,进行回调使用,那么就是这个如何回调,就是一个学习快了,在学校的时候就是想学习一下,后来因为放假,就没有写,昨天看了看找到最基本的例子进行学习了一下。只是浅薄的弄清了到底是怎么回事儿,今天正好有时间,就写一下。
见名知意:就是返回来进行调用呗。简单的来说就是A调用B的时候,B就同时(同步回调)或者非同时(异步回调)的调用一下A。
这里就是接口的一个使用环境了,我这里逻辑例子就是一个员工进行工作,老板对员工说,你把项目完成后就通过电话告诉我一声,我确定后通过秘书告诉你就可以下班了。
这里的员工就是A类 ,而老板就是B类了。
一、我们首先定义一个接口,这里的接口就类似于Boss的秘书了
public interface INotice {
public void tallBossOk(String strAsk);
}
然后我们希望员工能够拥有秘书通知你的一种方式,我们需要定义一个员工类进行实现这个方式。
二、员工类实现这个秘书
package com.hejingzhou.boss;
public class Staff implements INotice{
private Boss boss;
public Staff(Boss boss){
this.boss = boss;
}
public void startJob(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
askResult("现在告诉老板我们完成工作了");
}
public void askResult(String str){
System.out.println(str);
boss.callBossMothod(Staff.this);//A调用B
}
public void tallBossOk(String strAsk) {
// TODO Auto-generated method stub
System.out.println("老板回应说"+strAsk);
}
}
通过员工类就可以知道,我们员工主要分为三部分,①进行自己的工作(这里我只是通过休眠线程进行模拟)②进行调用告诉老板做完时向老板打电话告诉他你做完了③老板通过秘书告诉你的信息。
当员工做完事情后,就会通过电话告诉老板。现在看看老板是怎么进行高冷的说了一句::“行 你可以走了“。
三、老板类
public class Boss {
public void callBossMothod(INotice iNotice){
iNotice.tallBossOk("行,你可以走了");//B调用A
}
}
老板只是通过调用了自己的秘书告诉你可以走了。
四、启动程序
package com.hejingzhou.boss;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Boss boss = new Boss();
Staff staff = new Staff(boss);
System.out.println("现在开始工作");
staff.startJob();
//staff.askResult("现在告诉告诉老板我已经完成了工作");
}
}
这样的话就可以可以完成整个流程了。
------------------------打印结果---------------------------
现在开始工作
现在告诉老板我们完成工作了
老板回应说行,你可以走了
现在开始工作
现在告诉老板我们完成工作了
老板回应说行,你可以走了
---------------------------------------------------
这样就完成一个简单的回调。