您的位置:首页 > 移动开发 > Android开发

android观察者模式模拟短信改变过程

2016-03-26 10:05 567 查看

观察者模式

在java中,我们都知道有两个内置类型,一个是Observer接口,一个是Obserable实现类。Observer是观察者实现的接口,Observable是被观察者实现的类

观察者模式:Observable持有observer的引用,一旦Observable发生改变,就通知所有的observer

接下来我们模拟contentprivider短信验证

SmsDB代码

`public class SmsDB extends Observable{
public void notifyChanged(){
setChanged();//设置数据源发生改变
notifyObservers("短信数据库更新了");//提示所有的观察者
}
}


`

SmsObserver的实现

`public class SmsObserver implements Observer {
private String name;

public SmsObserver(String name) {
super();
this.name = name;
}

@Override
public void update(Observable observable, Object data) {
// TODO Auto-generated method stub
Log.e("", name+"收到了"+data);
}

}


`

初始化并注册观察者

`
private void initAndRegisterObserver() {
// TODO Auto-generated method stub
SmsObserver observer1=new SmsObserver("observer1");
SmsObserver observer2=new SmsObserver("observer2");
SmsObserver observer3=new SmsObserver("observer3");
db = new SmsDB();
db.addObserver(observer1);
db.addObserver(observer2);
db.addObserver(observer3);
}


`

接着就是触发事件

`public void notify(View v){
db.notifyChanged();
}


`

事件触发截图



观察者模式,主要理解观察者,被观察者,以及被观察者持有观察者的引用,到时候遍历通知即可。

setChanged是设置改变为真,之后,可以notifyObservers(”数据”)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: