Android里的观察者模式应用

例子:Browser里有许多Tab,现在比较流行的标签页浏览。每当Browser的BrowserSettings(公用)发生变化时,会对每一个
Browser的Tab马上有效。在这里TAb是观察者,BrowserSettings是被观察者。

class BrowserSettings extends Observable {    /**     * Add a WebSettings object to the list of observers that will be updated     * when update() is called.     *     * @param s A WebSettings object that is strictly tied to the life of a     *            WebView.     */    public Observer addObserver(WebSettings s) {        Observer old = mWebSettingsToObservers.get(s);        if (old != null) {            super.deleteObserver(old);        }        Observer o = new Observer(s);        mWebSettingsToObservers.put(s, o);        super.addObserver(o);        return o;    }    /**     * Delete the given WebSettings observer from the list of observers.     * @param s The WebSettings object to be deleted.     */    public void deleteObserver(WebSettings s) {        Observer o = mWebSettingsToObservers.get(s);        if (o != null) {            mWebSettingsToObservers.remove(s);            super.deleteObserver(o);        }    }    /*     * Package level method for obtaining a single app instance of the     * BrowserSettings.     */    /*package*/ static BrowserSettings getInstance() {        if (sSingleton == null ) {            sSingleton = new BrowserSettings();        }        return sSingleton;    }    void update() {        setChanged();        notifyObservers();    }    /*     * An observer wrapper for updating a WebSettings object with the new     * settings after a call to BrowserSettings.update().     */    static class Observer implements java.util.Observer {        // Private WebSettings object that will be updated.        private WebSettings mSettings;        Observer(WebSettings w) {            mSettings = w;        }        public void update(Observable o, Object arg) {    }    }}


更多相关文章

  1. Android中使用gradient的一条建议
  2. android Button 颜色的变化(点击,放开,点击不放)
  3. Android(安卓)Pull Refresh View
  4. android项目源码异步加载远程图片的小例子
  5. Android(安卓)Java方法链起来!链式调用方法、仿Builder 等。
  6. How to Implement Push Notifications for Android
  7. Android中内容观察者的使用---- ContentObserver类详解
  8. Android(安卓)使用ContentObserver监听短信的变化,并发送信息给特
  9. Android(安卓)GridView 例子

随机推荐

  1. 如何使用virtualenv安装wxPython
  2. Bash命令在启动时没有找到rvm, Mint
  3. Linux设备驱动剖析之Input(三)
  4. Linux和Windows下查看、设置环境变量的比
  5. 这个冬天,他们实现了梦想中的华丽转身…
  6. 在Linux中的脚本中安装应用程序
  7. linux shell 里面,真值为0,假值为非0
  8. linux 多线程基础
  9. linux 内核协议栈
  10. Linux进程间通信(二):信号集函数 sigemptyse