中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
萍乡市| 建湖县| 荣昌县| 白城市| 章丘市| 天祝| 龙岩市| 阿坝县| 辽源市| 上犹县| 尼玛县| 酉阳| 阿克| 鸡泽县| 大宁县| 虎林市| 通许县| 淳安县| 石台县| 金门县| 当涂县| 富川| 镇坪县| 青海省| 邛崃市| 临沂市| 开鲁县| 禄丰县| 泉州市| 巴里| 凌源市| 修文县| 宁安市| 聂拉木县| 逊克县| 屏东市| 韶山市| 尉犁县| 湖州市| 叶城县| 嘉鱼县|