內容提供器
1.內容提供器(Content Provider):
主要用於在不一樣的應用程序之間實現數據共享的功能,它提供了一套完整的機制,
容許一個程序訪問另外一個程序中的數據,同時還能保證被訪數據的安全性.android
2.使用:
1.獲取ContentResolv實例 : 能夠經過 Context 中的 getContentResolver()方法獲取到該類的實例
2. insert()方法用於添加數據,update()方法用於更新數據,delete()方法用於刪除數據,query()方法用於查詢數據
3.URI格式:Uri uri = Uri.parse("content://com.example.app.provider/table1") //指定查詢某個應用程序下的某一張表
4.記得關流數據庫
3.自定義內容提供器
1.新建一個類繼承ContentProvider
1. onCreate()
初始化內容提供器的時候調用。一般會在這裏完成對數據庫的建立和升級等操做,
返回 true 表示內容提供器初始化成功,返回 false 則表示失敗。注意,只有當存在
ContentResolver 嘗試訪問咱們程序中的數據時,內容提供器纔會被初始化。
2. query()
從內容提供器中查詢數據。使用 uri 參數來肯定查詢哪張表,projection參數用於確
定查詢哪些列,selection和 selectionArgs參數用於約束查詢哪些行,sortOrder 參數用於
對結果進行排序,查詢的結果存放在 Cursor 對象中返回。
3. insert()
向內容提供器中添加一條數據。使用 uri 參數來肯定要添加到的表,待添加的數據
保存在 values 參數中。添加完成後,返回一個用於表示這條新記錄的 URI。
4. update()
更新內容提供器中已有的數據。使用 uri 參數來肯定更新哪一張表中的數據,新數
據保存在 values 參數中,selection 和 selectionArgs 參數用於約束更新哪些行,受影響的
行數將做爲返回值返回。
5. delete()
從內容提供器中刪除數據。使用 uri 參數來肯定刪除哪一張表中的數據,selection
和 selectionArgs參數用於約束刪除哪些行,被刪除的行數將做爲返回值返回。
6. getType()
根據傳入的內容 URI來返回相應的 MIME類型。
2.在匹配URI時,採用UriMatcher類來幫忙
3.getType() MIME類型格式:
1. 必須以 vnd 開頭。
2. 若是內容 URI 以路徑結尾,則後接 android.cursor.dir/,若是內容 URI 以 id 結尾,則後接 android.cursor.item/。
3. 最後接上 vnd.<authority>.<path>。
4. 好比:vnd.android.cursor.dir/vnd.com.example.app.provider.table1安全