1.先自定义观察者
/**
* Created by yaohui on 2016/12/30.
*/
public class Teacher {
public String xixi;
public void setXixi() {
xixi = "xixi";
//发送通知
notifyObserver(xixi);
}
//1.定义接口和接口方法
public interface HahaObserver {
void sendMessage(String xixi);
}
//2.定义集合保存接口对象
private List<HahaObserver> mObservers = new ArrayList<>();
//3.添加观察者到观察者集合中
public synchronized void addObserver(HahaObserver observer) {
if (observer == null) {
throw new NullPointerException();
}
if (!mObservers.contains(observer)) {
mObservers.add(observer);
}
}
//4从观察者集合中移除观察者
public synchronized void removeObserver(HahaObserver observer) {
mObservers.remove(observer);
}
//5.通知所有的观察者数据记录已经改变
public void notifyObserver(String xixi) {
for (HahaObserver observer : mObservers) {
observer.sendMessage(xixi);
}
}
}
2.然后在2个Activity里面分别发送消息
MainActivity里面
mTeacher = MyApplication.getmTeacher();
mTeacher.addObserver(this);
mTeacher.setXixi();
SecondActivity里面
mTeacher = MyApplication.getmTeacher();
mTeacher.addObserver(this);
mTeacher.setXixi();
3.我们先来预测打印dev结果
一开始启动应用会打印:我是MainActivity,我接受的消息是:xixi,跳转到SecondActivity界面会打印:跳转到SecondActivity界面,我是MainActivity,我接受的消息是:xixi,我是SecondActivity,我接受的消息是:xixi,最后我们来实践一下,看到底是不是我们预测的这样.
4.
5.打印的结果和我们预想的是一模一样的,说明成功.