不然你只能通过每隔一段时间刷新一下读取数据库,看看有没有更新,有就推送,没有就继续监听,这个你可以自己设置更新时间。
在页面中添加一个隐藏的iframe不断刷新或者使用ajax对某个页面进行轮询,目的就是不停的请求一个页面,这个页面可以只返回一个简单的标识,用来返回数据是否已经改变(或者还可以加上新数据是什么,推荐使用JSON)这样就可以“即时”获取到服务器端的数据变动了,时间可以比较频繁,比如5秒甚至更频繁,没有办法完全实时,因为服务器端无法主动发消息给客户端!
可以使用ContentObserver对象监听,如下:public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri,举例如下:
假设UriMatcher 里注册的Uri共有一下类型:
1 、content://com.qin.cb/student (学生)
2 、content://com.qin.cb/student/#
3、 content://com.qin.cb/student/schoolchild(小学生,派生的Uri)
假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的 Uri 为
content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,
但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)