回答

5

onQueryComplete在UI线程上调用吗?

这就是所谓的调用线程...这样的线程上,你推出的AsyncQueryHandler

难道AsyncQueryHandler被实例化了吗?

AsyncQueryHandlerHandler执行异步查询的子类(或插入,更新,删除)的ContentResolver和将结果返回给调用线程。允许Handler与除主UI线程以外的线程相关联,查询/交易也可以与ContentResolver相关联。因此,您应该被允许从一个单独的线程呼叫AsyncQueryHandler

话虽这么说,这样做是可能不是你想要的一对夫妇的原因:

  1. 当你实例化一个单独的线程AsyncQueryHandler,所有后续的回调将返回到调用线程。这通常不是您想要的,因为它不提供与主UI线程(负责创建布局和接收触摸事件的线程)同步的简单方法。

  2. 您已经在一个单独的线程中,因此对ContentResolver的调用将已经与UI线程异步。

顺便说一下,在AsyncQueryHandler的文件没有提及这点东西,但你可以通过阅读source code数字大部分了。 Handler(它的直接基类)的文档也解释了它背后的理论。