android 数据库怎么监听数据变化

android 数据库怎么监听数据变化,第1张

在android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能会搂关cursor而导致程序内存未释放等等。其实android内部提供了一种ContentObserver的东西来监听数据库内容的变化。

ContentObserver的构造函数需要一个参数Hanlder,因为ContentObserver内部使用了一个实现Runnable接口的内部类NotificationRunnable,来实现数据库内容的变化。需要使用hanlder去post消息。注册ContentObserver的方法是:getContentResolver().registerContentObserver(uri, notifyForDescendents, observer).

上面3个参数为:uri----Uri类型,是需要监听的数据库的uri.

notifyForDescendents---boolean true的话就会监听所有与此uri相关的uri。false的话则是直接特殊的uri才会监听。一般都设置为true.

observer-----ContentObserver 就是需要的contentobserver.

初始化一个ContentObserver对象,重载onChange(boolean ),在这个方法里去 *** 作数据库的使用,针对变化后的使用。

使用log.tet文件查看。

打开数据库配置文件my.ini。在数据库的最后一行添加log.txt代码,重启mysql数据库。去数据库找数据目录,会发现多了一个log.txt文件。

对数据库 *** 作,查看log.txt文件内容如果发现有变化说明你就可以监控到mysql数据库的变化。数据库的查询删除更新插入都可以查到。默认情况下,当开启时,所有的日志都存放在DataDir目录下。如果没有指定名称的话,它会以后主机名为名称。凡Value值为OFF的表示未开启服务,若要开启只需要将上的my.ini配置信息写入,然后去掉前面的符号,再重启mysql服务。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9924119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存