Android API:Activity.managedQuery()

來源:互聯網
上載者:User

描述:

擷取一個包含指定資料的 Cursor 對象,並由 Activity 來接管這個 Cursor 的生命週期。

首先該函數通過調用 getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder) 擷取一個包含指定資料(由 query 方法的參數指定)的 Cursor 對象。

然後通過調用 startManagingCursor(c) 實現由 Activity 來接管返回的 Cursor c 的生命週期。

 

原型:

public final Cursor managedQuery(Uri uri,

                                 String[] projection,

                                 String selection,

                                 String[] selectionArgs,

                                 String sortOrder)

{

    Cursor c = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);

    if (c != null) {

        startManagingCursor(c);

    }

    return c;

}

 

 參數:

uri, 用於 Content Provider 查詢的 URI,也就是說從這個 URI 中擷取資料。例如:

  

Uri uri = Contacts.People.CONTENT_URI; //連絡人清單URI。

projection, 用於標識 uri 中有哪些 columns 需要包含在返回的 Cursor 對象中。例如:

   

//待查詢的columns

String[] projection = { Contacts.PeopleColumns.NAME, Contacts.PeopleColumns.NOTES };

selection, 作為查詢的過濾參數(過濾出符合 selection 的資料),類似於 SQL 中 Where 語句之後的條件選擇。例如:

    

String selection = Contacts.People.NAME + “=?” //查詢條件

selectionArgs, 查詢條件參數,配合 selection 參數使用。例如:

     

String[] selectionArgs = {“Braincol”, “Nixn.dev”};//查詢條件參數

sortOrder,查詢結果的排序方式(按查詢列( projection 參數中的 columns )中的某個 column )排序)。例如:

      

String sortOrder = Contacts.PeopleColumns.NAME; //查詢結果的排序方式(按指定的查詢列排序)

傳回值: 

一個包含指定資料的 Cursor 對象。

樣本:

Uri uri = Contacts.People.CONTENT_URI;

String[] projection = { Contacts.PeopleColumns.NAME,

        Contacts.PeopleColumns.NOTES };

String selection = Contacts.PeopleColumns.NAME + "=?";

String[] selectionArgs = { "Braincol","Nixn.dev" };

String sortOrder = Contacts.PeopleColumns.NAME;

//使用 managedQuery 擷取 Contacts.People 這個 ContentProvider 的 Cursor。

Cursor cursor = managedQuery(uri, projection, selection, selectionArgs,sortOrder);

上述樣本的含義就是:在連絡人清單中查詢 NAME 為 Braincol 和 Nixn.dev 兩個連絡人的 "NAME" 和 "NOTES" 資訊,並且將這些資訊按照名字( NAME )排序,最後將排序之後的結果封裝在一個 Cursor 對象中返回。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.