数据存储之SqliteOpenHelper、ContentProvider、ContentResolver详解

有不明之处或者本文有错误地方请大方的提出来,转载请注明来源:http://blog.csdn.net/geekerparadise/article/details/7787729

接触Android有一段时间了,每一个知识点都有涉及,现在觉得重新把知识点理一遍很重要,那么就凭感觉、凭喜好无知识点先后顺序来理清一遍。这篇文章主要叙述了如何来自定义自己的ContentProvider组件,其中涉及到的一些比较重要的知识点也顺带详细分解一下,那么现在就开始吧。

一、SQLiteOpenHelper简介:

SQLiteOpenHelper是Android给我们提供的一个工具,用来和数据库交互的。我们通常使用的方法是自定义一个类来继承于SQLiteOpenHelper,通过它可以得到一个SQLiteDatabase的实例,通过使用此对象的一些方法来与数据库交互。

例如:

execSQL(Stringsql).传入一个字符串形式的sql语句来执行等。

insert(String table, String nullColumnHack, ContentValues values)。插入操作,table是表名,values是ContentValues类型用来携带数据的,第二个参数是为了防止values为空时后台创建SQL语句出错。具体的其他方法参考API文档,此处就不做解释。

二、ContentProvider简介:

假如你的应用程序想把一些数据提供给其他的应用程序来使用,那么此时就会用到ContentProvider,有了它你的应用程序就可以在进程间共享数据。使用的时候需要创建一个类来继承ContentProvider,实现里面的方法,这就相当于此应用给其他应用程序提供访问数据的接口。说直观点,Contentprovider就相当于一个中介人,它介于第一个应用程序的数据层和另一应用程序之间。使用了Contentprovider最重要的作用是统一了共享数据时访问数据的方式。

三、ContentResolver简介:

当外部应用程序想对ContentProvider中数据进行操作时可以使用ContentResolver来完成,要获取它的对象可以使用Activity中的getContentResolver方法来完成。

四、Uri简介:

介绍之前默认为大家都了解URL,那么URL就相当于Uri的一个子集。Uri由三部分组成:scheme、authority、path。下面举一个例子来具体介绍。

Uri:    content://com.jm.provider.myprovider/peoples

1    scheme部分:以content://开头,是Android系统定义的,不可更改。

2    authority部分:推荐以域名+provider+类名组成,也可自己定义。

3    path部分:用来表示我们要操作的数据。具体说明如下:

      要操作peoples中所有数据可以构建 /peoples

      要操作peoples中_id为1的数据可以构建/peoples/1

Uri有两个比较常用方法

1       parse(String uriString)它的作用是将字符型数据转换成Uri类型数据。

2       withAppendedPath(Uri baseUri,String pathSegment)它的作用是将baseUri后面加上pathSegment组成新的Uri。

五、UriMatcher简介:

作用是在ContentProvider中把需要匹配的Uri全部注册上。

UriMatcher.NO_MATCHER表示不匹配任何路径,返回码为-1.

UriMatcher有两个常用方法。

1       match(Uri uri)获取路径的返回码。

2       addURI(String authority, Stringpath, int code)是用来注册需要匹配的路径。具体实例参看下文。

API中推荐

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值