AsyncQueryHandler的使用

简介: <p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; font-size:14px; line-height:25px; text-align:left"> 每天进步一点点之AsyncQ

每天进步一点点之AsyncQueryHandler学习

AsyncQueryHandler:异步的查询操作帮助类,其实它同样可以处理增删改

1。AsyncQueryHandler的作用

查询其API便可知,它担供:

startInsert

startDelete

startUpdate

startQuery

这四个操作,并提供相对应的onXXXComplete方法,以供操作完数据库后进行其它的操作,这四个onXXXComplete方法都是空实现,以便我们只需要去实现我们关注的操作。

 

2。为什么要使用AsyncQueryHandler

当然你也可以使用ContentProvider去操作数据库。

这在数据量很小的时候是没有问题的,但是如果数据量大了,可能导致UI线程发生ANR事件。

当然你也可以写个Handler去做这些操作,只是你每次使用ContentProvider时都要再写个Handler,必然降低了效率。

因此API提供了一个操作数据库的通用方法。

 

3。如何使用AsyncQueryHandler

你只需要继承AsyncQueryHandler类,并提供onXXXComplete方法的实现(可以实现任何一个或多个,当然你也可以一个也不实现,如果你不关注操作数据库的結果),在你的实现中做一些对数据库操作完成的处理。

使用时直接调用startXXX方法即可。传入的通用参数如下:

int token,一个令牌,需要跟onXXXComplete方法传入的一致。(当然你也可以不一致,同样在数据库的操作结束后会调用对应的onXXXComplete方法 )

Object cookie,你想传给onXXXComplete方法使用的一个对象。(没有的话传递null即可。基本发现这个变量没太大作用)

Uri uri,(不解释)

 

4。AsyncQueryHandler还为我们做了什么

AsyncQueryHandler中使用了一个WeakReference<ContentResolver>对象,即ContentResolver的弱引用  作用:当contentProvied发生变化时候同步更新仍可以通过使用AsyncQueryHandler类来达到这一要求(暂时还没理解这个作用)

同时,在它执行操作数据库时,吃掉了所有的异常。见如下代码。

 catch (Exception e) {
                        Log.w(TAG, e.toString());
                        cursor = null;
                    }

目录
相关文章
|
开发工具 iOS开发 开发者
windows电脑在线创建ios证书的教程
目前苹果官网提供的,生成ios打包证书的方法,只能使用mac电脑,通过钥匙串访问的功能,生成证书,这种方法的缺点是你必须要有苹果mac电脑才能生成证书,而一个mac电脑,少则8000多元,成本比较高。 所以我们这篇文章,在这里教会大家如何在没有mac电脑的情况下,创建ios证书
428 0
windows电脑在线创建ios证书的教程
|
10月前
|
流计算 计算机视觉 索引
使用ffmpeg将视频转成HLS(m3u8)格式
HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。 因为HLS协议是将视频切分成很多小的ts片段,这些小片段很适合放到cdn上,有很多视频文章都使用了hls格式传输视频。今天我在这里教大家如何用ffmpeg将mp4格式的视频转为HLS(m3u8)格式。
590 0
|
弹性计算 安全 Serverless
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
249 0
|
JSON 测试技术 API
【探花交友】day06—即时通信(二)
【探花交友】day06—即时通信(二)
107 0
|
SQL 关系型数据库 MySQL
Mysql注入学习笔记
Mysql注入学习笔记
296 0
|
监控 Java 双11
重试利器之Guava Retrying
重试利器之Guava Retrying
536 0
重试利器之Guava Retrying
|
Python Windows
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程
928 0
node笔记记录54网络通信2
node笔记记录54网络通信2
37 0
node笔记记录54网络通信2
Yii2的社区支持是什么?底层原理是什么?
Yii2的社区支持是什么?底层原理是什么?