Android里的观察者模式应用
16lz
2022-06-03
Android里的观察者模式应用
例子:Browser里有许多Tab,现在比较流行的标签页浏览。每当Browser的BrowserSettings(公用)发生变化时,会对每一个
Browser的Tab马上有效。在这里TAb是观察者,BrowserSettings是被观察者。
例子: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) { } }}
更多相关文章
- Android中使用gradient的一条建议
- android Button 颜色的变化(点击,放开,点击不放)
- Android(安卓)Pull Refresh View
- android项目源码异步加载远程图片的小例子
- Android(安卓)Java方法链起来!链式调用方法、仿Builder 等。
- How to Implement Push Notifications for Android
- Android中内容观察者的使用---- ContentObserver类详解
- Android(安卓)使用ContentObserver监听短信的变化,并发送信息给特
- Android(安卓)GridView 例子