每天進步一點點之asyncqueryhandler學習
asyncqueryhandler:異步的查詢操作幫助類,其實它同樣可以處理增删改
1。asyncqueryhandler的作用
查詢其api便可知,它擔供:
<a target="_blank">startinsert</a>
<a target="_blank">startdelete</a>
<a target="_blank">startupdate</a>
<a target="_blank">startquery</a>
2。為什麼要使用asyncqueryhandler
當然你也可以使用contentprovider去操作資料庫。
這在資料量很小的時候是沒有問題的,但是如果資料量大了,可能導緻UI線程發生anr事件。
當然你也可以寫個handler去做這些操作,隻是你每次使用contentprovider時都要再寫個handler,必然降低了效率。
是以api提供了一個操作資料庫的通用方法。
3。如何使用asyncqueryhandler
使用時直接調用startxxx方法即可。傳入的通用參數如下:
object cookie,你想傳給onxxxcomplete方法使用的一個對象。(沒有的話傳遞null即可。基本發現這個變量沒太大作用)
uri uri,(不解釋)
4。asyncqueryhandler還為我們做了什麼
asyncqueryhandler中使用了一個weakreference<contentresolver>對象,即contentresolver的弱引用 作用:當contentprovied發生變化時候同步更新仍可以通過使用asyncqueryhandler類來達到這一要求(暫時還沒了解這個作用)
同時,在它執行操作資料庫時,吃掉了所有的異常。見如下代碼。
catch (exception e) {
log.w(tag, e.tostring());
cursor = null;
}