笔记(学了回调,有点小复杂,自己整理下,加深理解)
人家说比较经典的回调方式:
- Class A实现接口CallBack callback
- class A中包含一个class B的引用b
- class B有一个参数为callback的方法f(CallBack callback)
- A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C
- 然后b就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D
这样比较难理解,而且在写代码的时候也不好操作
所以换汤不换药,重新理一下思维,按照写代码的顺序重新理解下
回调最主要的作用是增加代码的复用性,
然后就是我现在学的通信fragment 和activity通信。
复用性这个不好靠一段代码写出来,直接写通信
开始!
1写一个类A (该类你要将数据传到类B中)
2定义接口
你要用来干嘛?就是传进来的参数就是你需要传递的数据
inteface Callbacks{
public void doSomethings(String result);
}
3 写一个方法,该方法中将接口callbacks作为参数,为啥,主要是为了调用该接口的方法,然后向下调用他的具体实现(就是类B中的调用)
public void f(Callbacks callbacks){
//msg 这个就是你要传出去的信息,是在该类中定义好或者处理过的数据
callbacks.dosomethings(msg);
}
4创建类B 主要实现接口Callbacks
@override
public void doSomethings(){........};//具体实现获取A的信息后做的一些事。
先引用A a,然后调用他的f()方法
a.f(this);//因为B实现了接口,所以可以用实现类来代替接口Callbacks f()中的callbacks.dosomethings(msg); 会调用B的具体实现方法。
这样就实现了通信,而代码的复用主要就是jian将可变的代码和不变的分离开来,这样可以多用不变的代码就shix实现了复用。
而Android中的较多的源码都是使用了这种回调机制。