1.概念:Android中主要是指当某些敏感性数据eg:数据库和控件 发生变化的时候,发消息给对这些敏感数据感兴趣者,也即观察者,然后观察者用自己的业务逻辑处理。
2.应用举例: 比如银行账户改变,将消息发给用户,用户收到消息处理此事件。针对以上情况,观察者设计模式如下:
a. 模拟数据库,里面装载有许多敏感数据,对数据库中的数据进行操作,同时发消息通知所有观察者:
public class AccountDB {
// 此为数据库:实现增删查改的功能,同时数据库有改变的是否,及时发出变更的消息
private ArrayList<AccountInfo> list = new ArrayList<AccountInfo>();
private Context context;
public AccountDB(Context context) {
this.context = context;
}
// 往数据库中增加一个账户信息:
public void add(AccountInfo accountInfo) {
list.add(accountInfo);
// The uri of the content that was changed.
Uri uri = Uri.parse("content://account/add/" + accountInfo.id);
context.getContentResolver().notifyChange(uri, null);
}
}
b.定义一个观察者类,重写Onchange方法:
class MyContentObserver