Android系統一共提供了四種數據存儲方式。分別是:SharePreference、SQLite、Content Provider和File。由於Android系統中,數據基本都是私有的,都是存放於“data/data/程序包名”目錄下,所以要實現數據共享,正確方式是使用Content Provider,讀取系統瀏覽器中存儲的書籤歷史的數據也是採用這種方法。
一個Content Provider類實現了一組標準的方法接口,外界可以通過這一套標準及統一的接口和程序裏的數據打交道。通過ContentResolver接口可以訪問ContentProvider提供的數據。
常見的接口:
通過Uri進行查詢,返回一個Cursor:
Query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder);
將一組數據插入到Uri指定的地方:
Insert(Uri url, ContentValues values);
更新Uri指定位置的數據
Update(Uri uri, ContentValues values, String where, String[] selectionArgs);
刪除指定Uri並且符合一定條件的數據:
delete(Uri url, String where, String[] selectionArgs)
用到的Uri
在ContentProvider和 ContentResolver當中用到了Uri的形式通常有兩種,一種是指定全部數據,另一種是指定某個ID的數據.
在Uri.parse("content://com.android.browser/bookmarks")中能讀取到bookmarks、url、title、folder、parent、favicon等信息。