我使用的是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
(它的直接基類)的文檔也解釋了它背後的理論。