android開發系列日誌–(4)

來源:互聯網
上載者:User

一.ContentProvider
    1.什麼是ContentProvider
        ContentProvider是Android四大組件之一, 用來將程式內的資料共用給其他程式.
        在共用資料的時候, 將操作資料的代碼封裝成方法, 不直接把資料暴露出來, 提高安全性.
        可以對ContentProvider註冊ContentObserver, 即時監聽資料修改.
    2.怎麼建立和訪問ContentProvider *****
        定義類繼承ContentProvider, 在資訊清單檔<application>節點中註冊<provider>節點
        將程式安裝到手機上之後, 其他應用就可以訪問了
        訪問時擷取到ContentResolver對象, 指定Uri, 調用增刪改查方法
    3.ContentProvider中注意的細節 ***
        在ContentProvider中可以通過Uri識別表名, 可以識別ID
        使用UriMatcher類可以識別一個路徑, 調用addUri()方法添加路徑, 然後使用match()方法匹配一個Uri可以得到預先設定的結果碼
        Uri中帶著的ID可以用ContentUris類的parseId()方法得到
        在插入方法執行結束後, 需要返回一個帶ID的Uri, 也可以使用ContentUris類的withAppendedId()方法完成
    4.使用ContentObserver觀察ContentProvider的資料改變 *****
        使用ContentResolver的registerContentObserver()方法可以在指定Uri上註冊一個ContentObserver
        ContentObserver的onChange()方法在ontentProvider調用ContentResolver.notifyChange()方法時, 自動執行
       
二.監聽簡訊
    1.使用GIT下載原始碼
        查看清單得到authorities, 查看java代碼瞭解子級路徑
    2.添加觀察者
        給系統中簡訊資料的內容提供者註冊觀察者, 在資料改變的時候, 查詢最後一條記錄
        擷取其中address, type, date, body四個欄位

三.操作連絡人
    1.下載代碼 *
        和簡訊代碼相同, 使用GIT下載, 找到authorities和子級路徑
    2.讀連絡人 ***
        先讀raw_contacts表得到所有的id
        用id作為查詢條件, 查詢data表. mimetype是資料類型, data1是資料
    3.寫連絡人
        先向raw_contacts表寫入一個自動產生的id
        再用id作為data表中raw_contact_id列的值, 插入資料
        多個插入操作應該是一組操作, 要麼都成功, 要麼都失敗
        可以使用ContentResolver類的applyBatch()方法實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.