system.setting-全局变量数据监听
今天在setting里添加了一个新的变量,想要实现对这个变量的监听。现在记录下方法
首先就是明白一点,我们在system.setting里添加的变量,都会被保存在data/data/com.android.providers.settings/databases/settings/system 里面
INSERT INTO "system" VALUES(,'voice_unlock_screen',NULL);
INSERT INTO "system" VALUES(,'voice_unlock_and_launch1',NULL);
INSERT INTO "system" VALUES(,'voice_unlock_and_launch2',NULL);
INSERT INTO "system" VALUES(,'voice_unlock_and_launch3',NULL);
INSERT INTO "system" VALUES(,'volume_voice_earpiece','');
INSERT INTO "system" VALUES(,'volume_ring_speaker','');
INSERT INTO "system" VALUES(,'com_android_contacts_mtk_unread','');
INSERT INTO "system" VALUES(,'hide_rotation_lock_toggle_for_accessibility','');
INSERT INTO "system" VALUES(,'pointer_location','');
INSERT INTO "system" VALUES(,'nanlog_clock_style','');
所以,如果我们要监听,我们只需要监听它所在的数据库就行了
1.写数据库监听动作
private ContentObserver mAnalogClockObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
int value = Settings.System.getInt(
mContext.getContentResolver(), Settings.System.NANLOG_CLOCK_STYLE, DEFAULT_ANALOG_CLOCK);
android.util.Log.e("zhangshuli", "value==="+value);
updateClockView(value);
}
};
2.注册监听的数据库
mContext.getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.NANLOG_CLOCK_STYLE),
false, mAnalogClockObserver);
这里最主要的就是获得监听数据库的uri,如果我们打log就可以发现,uri如下
uri===content://settings/system/nanlog_clock_style
从system.setting获得变量数据库的方法就是getUriFor方法,具体实现如下
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/global");
getUriFor(CONTENT_URI, name);
public static Uri getUriFor(Uri uri, String name) {
return Uri.withAppendedPath(uri, name);
}
这样我们就可以实现数据库的监听了
system.setting-全局变量数据监听的更多相关文章
- Python黑客编程基础3网络数据监听和过滤
网络数据监听和过滤 课程的实验环境如下: • 操作系统:kali Linux 2.0 • 编程工具:Wing IDE • Python版本:2.7.9 • 涉及 ...
- 谈谈数据监听observable的实现
一.概述 数据监听实现上就是当数据变化时会通知我们的监听器去更新所有的订阅处理,如: var vm = new Observer({a:{b:{x:1,y:2}}}); vm.watch('a.b.x ...
- vue中的数据监听以及数据交互
现在我们来看一下vue中的数据监听事件$watch, js代码: new Vue({ el:"#div", data:{ arr:[,,] } }).$watch("ar ...
- Vue获取dom和数据监听
Vue获取dom对象 在js和jq中我们都能获取dom对象例如 // 获取id=1的div标签 <div id=d1>dom对象</div> // js语法 let ele = ...
- vue2.0 之计算属性和数据监听
计算属性computed <template> <div> <input type="text" name="" v-model= ...
- Vue之数据监听存在的问题
Vue之数据监听 当数据监听的是列表时,数据发生改变,不会被监听到. // 用$set修改数组中的数组能够被监听 // app.$set(this.hobby, 0, "爱你哦") ...
- 设置USB数据监听
设置USB数据监听 在Kali Linux中,USB也是作为一个通信端口进行存在.常见的鼠标.键盘.U盘都是通过USB接口传输数据.所以,对于USB接口也可以实施监听,类似网络接口一样.在进行US ...
- Vue3 为何使用 Proxy 实现数据监听
博客地址:https://ainyi.com/93 vue3 响应式数据放弃了 Object.defineProperty,而使用Proxy来代替它 我们知道,在 vue2 中,实现数据监听是使用Ob ...
- Blazor和Vue对比学习(基础1.8):Blazor中实现计算属性和数据监听
1.7章<传递UI片断>,需要做几个案例,这部分暂停消化几天.我们先把基础部分相对简单的最后两章学习了. 计算属性和数据监听是Vue当中的概念,本质上都是监听数据的变化,然后做出响应.两者 ...
随机推荐
- CF245H Queries for Number of Palindromes(回文树)
题意翻译 题目描述 给你一个字符串s由小写字母组成,有q组询问,每组询问给你两个数,l和r,问在字符串区间l到r的字串中,包含多少回文串. 输入格式 第1行,给出s,s的长度小于5000 第2行给出q ...
- 【转】 HTML解析:基于XPath的C#类库HtmlAgiliytyPack
[转] HTML解析:基于XPath的C#类库HtmlAgiliytyPack 最近处于毕业设计开始阶段,前期工作需要去国外的一些专业数据库网站比对一些所需TF家族信息,为了快捷方便,想到用程序去帮助 ...
- 安装Signavio Web设计器
在Jbpm3版本号中,这个著名的开源项目并没有基于浏览器的图形化流程设计器,结果导致流程设计一直停留在CS阶段. 比方我之前做过的一个OA项目.项目中採用的就是Jbpm3.因为它不支持在浏览器中的图形 ...
- Windows App开发之文件与数据
读取文件和目录名 这一节開始我们将陆续看到Windows App是如何操作文件的. 在Windows上读取文件名称.目录名 首先我们在XAML中定义一个Button和TextBlock,将读取文件/目 ...
- IOS开发之蘑菇街框架
近期公司的项目全然仿了蘑菇街client的框架,自己从网上找了一下,没有发现源代码.问遍各大QQ群也没有结果.上周五晚上一直在思考这个框架怎样搭建,周六早上有了灵感.写了一半.今天接着完好了一下. 在 ...
- 权重轮询调度算法 java版本号
权重轮询调度算法(Weighted Round-Robin Scheduling)--java版本号 因为每台server的配置.安装的业务应用等不同.其处理能力会不一样.所以,我们依据server的 ...
- 125.C++输入小结
#include <iostream> #include <iomanip> #include <cstring> #include <cstdlib> ...
- Servlet doPost方法同时上传图片和传递参数
上传图片和传递参数 上传图片和文件属于enctype="multipart/form-data" form中加入enctype="multipart/form-data ...
- Chrome OS 70 发布:这是安卓的私生子吗?
谷歌于28日正式宣布推出Chrome OS 70.这个最新的Chrome OS系统在一些设计上具备了更多安卓风味,为配备了触摸屏的Chromebook.平板电脑和二合一设备带来了操作界面改善. 据9t ...
- wangEditor - 轻量级web富文本编辑器(可带图片上传)
业务需求: 通过后台编辑文章和图片,上传到前端界面,展示新闻消息模块.这个时候,需要一款简洁的编辑器,百度编辑器是最常用的一种,但是功能太过于复杂,而wangEditor - 轻量级web富文本编辑器 ...