日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

AsyncQueryHandler了解

發布時間:2025/7/14 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AsyncQueryHandler了解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:http://www.krislq.com/2013/02/android_class_asyncqueryhandler/#more-596

摘要:

本文主要是從下面的幾個方面去介紹AsyncQueryHandler。

1. AsyncQueryHandler介紹

2. 為什么需要 AsyncQueryHandler

3. 如何使用AsyncQueryHandler

?

1. AsyncQueryHandler介紹:

AsyncQueryHandler顧名思義就是異步查詢幫助類,它是Handler的子類。我們在處理與ContentProvider相關內容的時候,可以使用此類來完成一些異步的操作。

AsyncQueryHandler類上為我們提供了以下接口:
startInsert
startDelete
startUpdate
startQuery

這四個操作,并提供相對應的onXXXComplete方法,以供操作完數據庫后進行其它的操作,這四個 onXXXComplete方法都是空實現,所以我們可以覆寫此類方法來完成我們的后續操作。

2. 為什么需要 AsyncQueryHandler

當然你也可以使用ContentProvider去操作數據庫。這在數據量很小的時候是沒有問題的,但是如果數據量大了,可能導致UI線程發生ANR事件。
當然你也可以寫個Handler去做這些操作,只是你每次使用ContentProvider時都要再寫個Handler,必然降低了效率。
因此API提供了一個操作數據庫的通用方法。

3. 如何使用AsyncQueryHandler

首先我們需要繼承AsyncQueryHandler,并且提供onXXXComplete的實現方法(如果我們不關心操作數據庫的結果,我們也可以不用實現),用于實現數據庫操作完成的操作。

然后,在我們需要使用的地方直接使用startXXX方法即可。傳入的通用參數有:

int token ,一個標識符。與onXXXComplete中返回的是一致的。當我們需要同時查詢多次時,可以通過 token來標識每個查詢。
Object cookie,你想傳給onXXXComplete方法使用的一個對象。不想傳,可以為null

Uri uri,不解釋了

?
下面再帖一段簡單的用法:

?

1 protected void onResume() { 2 super.onResume(); 3 Uri uri = Uri.parse("content://com.android.contacts/data/phones"); 4 String[] projection = { "_id", "display_name", "data1", "sort_key" }; 5 asyncQuery.startQuery(0, null, uri, projection, null, null, 6 "sort_key COLLATE LOCALIZED asc"); 7 } 8 9 //查詢聯系人 10 private class MyAsyncQueryHandler extends AsyncQueryHandler { 11 12 public MyAsyncQueryHandler(ContentResolver cr) { 13 super(cr); 14 } 15 16 @Override 17 protected void onQueryComplete(int token, Object cookie, Cursor cursor) { 18 //TODO something 19 } 20 }

?

轉載于:https://www.cnblogs.com/androidxiaoyang/archive/2013/02/19/2916555.html

總結

以上是生活随笔為你收集整理的AsyncQueryHandler了解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。