Android8.0 Settings数据库监听的一个通用工具类
2018-01-03 13:42
519 查看
当Settings数据库某个字段的值发生变化,要监听怎么办,就用下面这个类。我是从qs settigns中发现的。
这么用
mSetting.setListening(true);就是设置监听,不需要的时候就设false.
/** Helper for managing a global setting. **/ public abstract class GlobalSetting extends ContentObserver implements Listenable { private final Context mContext; private final String mSettingName; protected abstract void handleValueChanged(int value); public GlobalSetting(Context context, Handler handler, String settingName) { super(handler); mContext = context; mSettingName = settingName; } public int getValue() { return Global.getInt(mContext.getContentResolver(), mSettingName, 0); } public void setValue(int value) { Global.putInt(mContext.getContentResolver(), mSettingName, value); } @Override public void setListening(boolean listening) { if (listening) { mContext.getContentResolver().registerContentObserver(Global.getUriFor(mSettingName) , false, this); 198 } else { mContext.getContentResolver().unregisterContentObserver(this); } } @Override public void onChange(boolean selfChange) { handleValueChanged(getValue()); } } /** Common interface for components with an active listening state. **/ public interface Listenable { void setListening(boolean listening); }
这么用
Looper looper = this.getPrefContext().getMainLooper(); mHandler = new Handler(looper); mSetting = new GlobalSetting(this.getPrefContext(), mHandler, Global.xxx) { //global.xxx就是要监听的字段 @Override protected void handleValueChanged(int value) { //value就是监听的值 } } } }; mSetting.setListening(true);
mSetting.setListening(true);就是设置监听,不需要的时候就设false.
相关文章推荐
- DBeaver 一个通用数据库管理工具跨平台,
- 一个非常方便好用的ADO数据库连接字符串生成工具
- 一个比较实用的数据库查看管理工具
- android 监听短信数据库,制作短信控制工具,控制别人的手机!!(一)
- 【转】一个通用数据库访问类(C#,SqlClient)
- 如何制作一个通用的多系统安装U盘一(工具介绍)
- 通用数据库管理工具DBeaver
- 一个连接数据库的工具类(JDBC)
- 一个非常方便好用的ADO数据库连接字符串生成工具
- Funny Linq Part1: 建一个 Linq 数据库通用的操作类 (上)
- 被老板要求接一个通用数据库平台的项目
- c-tree数据库(c-treeACE)(4):工具篇之三:一个不能用的工具
- 用C#开发的一个通用的地铁换乘查询工具
- 上班第一天,写的一个工具,去数据库取视图,生成lua文件
- 阿庆SQL智能查询分析器,使用delphi开发的一个数据库查询分析管理工具.分享给大家
- 分享一个通用数据库分页方案
- 编写一个通用的事件监听函数
- 一个简单的通用命令工具(可以使用串口或其它的任意通信接口)
- Funny Linq Part2: 建一个 Linq 数据库通用的操作类 (下)
- 一个用户SQL Server2000/2005的好工具_——数据库发布向导(Database Publishing Wizard)