回答

5

onQueryComplete在UI線程上調用嗎?

這就是所謂的調用線程...這樣的線程上,你推出的AsyncQueryHandler

難道AsyncQueryHandler被實例化了嗎?

AsyncQueryHandlerHandler執行異步查詢的子類(或插入,更新,刪除)的ContentResolver和將結果返回給調用線程。允許Handler與除主UI線程以外的線程相關聯,查詢/交易也可以與ContentResolver相關聯。因此,您應該被允許從一個單獨的線程呼叫AsyncQueryHandler

話雖這麼說,這樣做是可能不是你想要的一對夫婦的原因:

  1. 當你實例化一個單獨的線程AsyncQueryHandler,所有後續的回調將返回到調用線程。這通常不是您想要的,因爲它不提供與主UI線程(負責創建佈局和接收觸摸事件的線程)同步的簡單方法。

  2. 您已經在一個單獨的線程中,因此對ContentResolver的調用將已經與UI線程異步。

順便說一下,在AsyncQueryHandler的文件沒有提及這點東西,但你可以通過閱讀source code數字大部分了。 Handler(它的直接基類)的文檔也解釋了它背後的理論。