我使用的是AsyncQueryHandler
,查询完成后它会调用onQueryComplete
。AsyncQueryHandler对ui线程上onQueryComplete的调用? (Android)
我的问题:onQueryComplete
在UI线程上调用?
我知道它在后台查询。
难道AsyncQueryHandler
被实例化了吗? (如果在UI线程中实例化将意味着将在UI线程上调用onQueryComplete
)。
我使用的是AsyncQueryHandler
,查询完成后它会调用onQueryComplete
。AsyncQueryHandler对ui线程上onQueryComplete的调用? (Android)
我的问题:onQueryComplete
在UI线程上调用?
我知道它在后台查询。
难道AsyncQueryHandler
被实例化了吗? (如果在UI线程中实例化将意味着将在UI线程上调用onQueryComplete
)。
是
onQueryComplete
在UI线程上调用吗?
这就是所谓的调用线程...这样的线程上,你推出的AsyncQueryHandler
。
难道
AsyncQueryHandler
被实例化了吗?
AsyncQueryHandler
是Handler
执行异步查询的子类(或插入,更新,删除)的ContentResolver
和将结果返回给调用线程。允许Handler
与除主UI线程以外的线程相关联,查询/交易也可以与ContentResolver
相关联。因此,您应该被允许从一个单独的线程呼叫AsyncQueryHandler
。
话虽这么说,这样做是可能不是你想要的一对夫妇的原因:
当你实例化一个单独的线程AsyncQueryHandler
,所有后续的回调将返回到调用线程。这通常不是您想要的,因为它不提供与主UI线程(负责创建布局和接收触摸事件的线程)同步的简单方法。
您已经在一个单独的线程中,因此对ContentResolver
的调用将已经与UI线程异步。
顺便说一下,在AsyncQueryHandler
的文件没有提及这点东西,但你可以通过阅读source code数字大部分了。 Handler
(它的直接基类)的文档也解释了它背后的理论。