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相关知识点。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值