contentprovider异步查询帮助类:AsyncQueryHandler

/**
 * A helper class to help make handling asynchronous {@link ContentResolver}
 * queries easier.
 */

 

从源码中的注释可知,AsyncQueryHandler类是contentprovider异步查询的帮助类,利用它可以很方便地实现异步访问contentprovider,它的使用很简单,看api便可以上手,下面是两个不容易弄明白的地方:

 

1. AsyncQueryHandler类并不是只能做异步查询,除了startQuery方法,它还是startInsert,startUpdate,startDelete方法,只不过这三个是final方法,不能再重写;

 

2. startQuery方法中,其他参数都好理解,前两个参数int token和Object cookie可能难懂,token用于标示本次操作,是个整形变量,不具备唯一性。cancelOperation方法的参数就是该变量。cookie这个变量,在AsyncQueryHandler类中并没有进行处理,从startQuery方法中传入,回调onQueryComplete方法时在作为变量传回。结合它的字面意义,我认为cookie变量的作用是在查询错误或者没有结果时,用于onQueryComplete方法的缓存数据,大致意思是,查询不到数据,先用cookie数据顶一下。

 

附件是android4.0的AsyncQueryHandler源码。

你可能感兴趣的:(contentprovider)