use*_*828 2 multithreading android android-loadermanager android-handler
我正在使用,AsyncQueryHandler并onQueryComplete在查询完成后调用它.
我的问题:onQueryComplete在UI线程上调用?
我知道它在后台进行查询.
在哪里AsyncQueryHandler实例化是否重要?(如果在UI线程中实例化将意味着onQueryComplete将在UI线程上调用).
是
onQueryComplete呼吁UI线程?
它在调用线程上调用 ...所以你启动它的线程AsyncQueryHandler.
在哪里
AsyncQueryHandler实例化是否重要?
AsyncQueryHandler是一个子类,Handler它执行异步查询(或插入,更新,删除)ContentResolver并将结果返回给调用线程.Handler允许s与主UI线程以外的线程相关联,查询/事务也是如此ContentResolver.因此,您也应该被允许AsyncQueryHandler从单独的线程调用.
话虽这么说,这样做可能不是你想要的几个原因:
当您AsyncQueryHandler在单独的线程上实例化时,所有后续回调都将返回到该调用线程.这通常不是您想要的,因为它不提供与主UI线程同步的简单方法,主线程负责创建布局和接收触摸事件.
您已经在一个单独的线程上,因此ContentResolver对于UI线程的调用已经是异步的.
顺便说一句,文档AsyncQueryHandler中没有提到关于这些要点的任何内容,但是你可以通过阅读源代码来解决大部分问题.Handler(其直接基类)的文档也解释了它背后的理论.
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |