Android基礎知識整合篇——ContentProvider知識點

    繼續完成連載博客,上次介紹的是Service相關的基礎知識,這次爲大家帶來ContentResolver的相關解釋和說明。希望博客能給諸位一點小小的幫助!


四大組件——ContentResolver


內容提供器

主要用於不同程序間數據共享,它提供了一套完整的機制,既能完成數據的交互還能保證數據的安全性。

用法有兩種

1.使用現有的內容提供器來讀取和操作相應程序的數據。(讀取聯繫人的例子)

private void readContacts(){
	Cursor cursor=null;
	try{
		cursor=getContentResolver().query(ContactsContract.CommanDataKinds.Phone.CONTENT_URI,null,null,null,null);
		while(cursor.moveToNext()){
			String displayNanme = cursor.getString(cursor.getColumnIndex(ContactsContract.CommanDataKinds.Phone.DISPLAY_NAME));
			String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommanDataKinds.Phone.NUMBER));
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(cursor!=null){
				cursor.close();
			}
		}
	}
}

用Cursor類封裝全部getContentResolver().query查詢出的數據,然後在分別取出。

2.創建自己的內容提供器給我們程序的數據提供外部訪問的接口。

通過新建一個類去繼承ContentProvider的方式來創建一個自己的內容提供器。ContentProvider中有六個抽象方法,需要重寫。

public class MyProvider extends ContentProvider{
	@Override
	public boolean onCreate(){
		return false;
	}
	@Override
	public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder){
		return null;
	}
	@Override
	public Uri insert(Uri uri,ContentValues values){
		return null;
	}
	@Override
	public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs){
		return 0;
	}
	@Override
	public int delete(Uri uri,String selection,String[] selectionArgs){
		return 0;
	}
	@Override
	public String getType(Uri uri){
		return null;
	}
}
1.onCreate()初始化內容提供器的時候調用,true成功,false失敗。

2.query()從提供器中查詢數據,projection用於確定查詢哪些列,selection和selectionArgs用於查詢哪些行,sortOrder對結果進行排序,查詢的結果放在Cursor對象中返回。

3.insert()添加數據的方法

4.update()更新內容提供器裏已有的數據。

5.delete()刪除數據的方法

6.getType()根據傳入的內容的URI來返回相應的MIME類型。


實現跨進程數據共享

由於過程實在太過複雜,還需要SQLite數據庫,SharedPreference,IO流等知識,不適合於基礎篇,以後若是有機會我再爲各位看官加一篇深度解析博客,將上面提到的知識點細分整理再寫出來,而這裏就不對跨進程數據共享深入解讀了!


------------------------------------------------------------------------------------------------------


    好的,至此關於四大組件的相關內容就介紹的差不多了。下篇開始記錄更多幾個安卓核心的功能和應用!敬請關注下一篇:界面UI相關知識點。








發佈了28 篇原創文章 · 獲贊 23 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章