使用ContentProvider实现数据共享

ContentProvider是实现不同应用程序间进行数据交换的标准API,ContentProvider以某种URI的形式对外提供数据,允许其他应用修改或访问数据。

凡是继承ContentProvider的类都需要实现以下几个方法

public class MyContentProvider extends ContentProvider {

	private static	UriMatcher matcher
							  = new UriMatcher(UriMatcher.NO_MATCH);
	static{
		matcher.addURI("注册时的uri", "uri后所跟的仔细目录", 1);//1为所对应的标识码
	}
	@Override
	public int delete(Uri uri, String selection, String[] selectionArgs) {
		
		return 0;
	}

	@Override
	public String getType(Uri uri) {
		switch (matcher.match(uri)) {
		case 1://根据mather里注册的进行判断
			return "";//这里返回对应的mime类型。

		default:
			break;
		}
		return null;
	}

	@Override
	public Uri insert(Uri uri, ContentValues values) {
		switch (matcher.match(uri)) {
		case 1://根据mather里注册的进行判断
			return null;//增啥改查根据匹配结果进行对应操作。

		default:
			break;
		}
		return null;
	}

	@Override
	public boolean onCreate() {
		
		return false;
	}

	@Override
	public Cursor query(Uri uri, String[] projection, String selection,
			String[] selectionArgs, String sortOrder) {
		
		return null;
	}

	@Override
	public int update(Uri uri, ContentValues values, String selection,
			String[] selectionArgs) {
		
		return 0;
	}

	

}


 分别对应的增删改,oncreate在provider第一次 使用时被调用。在注册contentprovider的时候需要绑定一个uri,其他应用程序在调用时只需要通过 ContentResovler调用对应的方法,就会执行具有相应uri的contentprovider的方法。 

为了确定ContentProvider能够匹配什么样的Uri,Android提供了URiMather这个方法,所以在操作provider的时候可以根据URiMather匹配的结果来做对应的操作。

Android操作系统本身也提供了大量的ContentProvider,例如联系人,系统的多媒体信息等,开发者也可根据contentresovler对其进行操作以获得安卓内部的数据。

其Uri对应的一般是对应类中的常量,使用它们是大多需要添加权限。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值