91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android contentresolver有啥使用技巧

小樊
81
2024-11-22 23:29:09
欄目: 編程語言

Android ContentResolver 是一個用于查詢和操作應用程序數據的接口。以下是一些建議和技巧,可以幫助您更有效地使用 ContentResolver:

  1. 使用 Content Resolver 查詢數據:

    • 使用 query() 方法查詢數據。傳入一個 URI、一個投影(表示要返回的列)、一個選擇條件(用于過濾結果)和一個可選的排序順序。
    • 示例:查詢聯系人的姓名和電話號碼。
      Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
      String[] projection = {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.Phone_NUMBERS};
      String selection = "((" + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?) AND (" + ContactsContract.Contacts.Phone_NUMBERS + " LIKE ?))";
      String[] selectionArgs = {"%John%", "%123%"};
      Cursor cursor = getContentResolver().query(contactsUri, projection, selection, selectionArgs, null);
      
  2. 插入數據:

    • 使用 insert() 方法插入數據。傳入一個 URI 和要插入的數據(以 ContentValues 對象的形式)。
    • 示例:插入一條新的聯系人記錄。
      Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
      ContentValues contentValues = new ContentValues();
      contentValues.put(ContactsContract.Contacts.DISPLAY_NAME, "John Doe");
      contentValues.put(ContactsContract.Contacts.Phone_NUMBERS, "123-456-7890");
      Uri newContactUri = getContentResolver().insert(contactsUri, contentValues);
      
  3. 更新數據:

    • 使用 update() 方法更新數據。傳入一個 URI、要更新的數據(以 ContentValues 對象的形式)和一個選擇條件。
    • 示例:更新聯系人的電話號碼。
      Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
      String selection = ContactsContract.Contacts._ID + "=?";
      String[] selectionArgs = {"1"};
      ContentValues contentValues = new ContentValues();
      contentValues.put(ContactsContract.Contacts.Phone_NUMBERS, "098-765-4321");
      getContentResolver().update(contactsUri, contentValues, selection, selectionArgs);
      
  4. 刪除數據:

    • 使用 delete() 方法刪除數據。傳入一個 URI 和一個選擇條件。
    • 示例:刪除名為 “John Doe” 的聯系人。
      Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
      String selection = ContactsContract.Contacts.DISPLAY_NAME + "=?";
      String[] selectionArgs = {"John Doe"};
      getContentResolver().delete(contactsUri, selection, selectionArgs);
      
  5. 使用 Content Resolver 監聽數據變化:

    • 要監聽數據變化,您需要實現 ContentObserver 接口并重寫 onChange() 方法。然后,使用 getContentResolver().registerContentObserver() 方法注冊 ContentObserver。
    • 示例:監聽聯系人的添加和刪除操作。
      Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
      getContentResolver().registerContentObserver(contactsUri, true, new ContentObserver(new Handler()) {
          @Override
          public void onChange(boolean selfChange) {
              super.onChange(selfChange);
              // 處理聯系人添加或刪除操作
          }
      });
      
  6. 使用 Content Resolver 訪問其他應用程序的數據:

    • 要訪問其他應用程序的數據,您需要知道它們的 Content URI。通常,這些 URI 可以在應用程序的文檔或官方資源中找到。
    • 示例:訪問某個應用程序提供的圖片庫。
      Uri imagesUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
      String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME};
      Cursor cursor = getContentResolver().query(imagesUri, projection, null, null, null);
      

了解這些建議和技巧后,您可以更有效地使用 Android ContentResolver 來查詢、插入、更新和刪除應用程序數據。

0
综艺| 六安市| 桦川县| 广昌县| 赣州市| 乐安县| 顺义区| 博野县| 贡山| 武汉市| 和顺县| 布拖县| 崇阳县| 绥芬河市| 南涧| 凌海市| 麻城市| 银川市| 开鲁县| 荆州市| 桂平市| 崇文区| 涞源县| 灌南县| 建德市| 阿拉善右旗| 林甸县| 寿光市| 潍坊市| 芜湖市| 宁武县| 芷江| 芦山县| 神农架林区| 海南省| 浦县| 赣榆县| 通道| 鲁山县| 澎湖县| 万源市|