初识ContentProvider(一)

来源:互联网 发布:怀化学院教务网络系统 编辑:程序博客网 时间:2024/06/07 03:33

熟悉安卓的人都知道安卓有四大组件,Activity、Service、Broadcast Receiver、Content Provider,今天要为大家讲解的就是我们的Content Provider

Content Provider翻译过来是内容提供者的意思,用来共享应用程序内的数据,当你需要把你的应用程序的数据共享给其他应用程序的时候,才需要他

例如可以提供手机内的联系人,短息,音乐,等等一些数据,所以说该组件对外提供了其他应用可以直接访问的增删改查方法,且一旦通过ContentProvider暴露了自己的数据,不管应用程序是否启动,都能访问到

下面就通过一个简单的数据存储demo来了解我们如何自己写的Content Provider,以及其他程序如何通过我们提供的Content Provider来访问我们应用程序的数据


首先我们要新建一个项目,先写一个简单的连接数据库的demo,实现数据库的添加与查询功能


然后在这个项目里新建一个provide包,再写一个类MyContentProvider


MyContentProvider类中,继承ContentProvider,然后重写六个方法,然后再去manifest里配置文件

其中authoritites是ContentProvider的身份证,所以为了保证唯一性,使用包名的方式命名,name代表的是内容提供者所在的类的地址,exported代表的是是否开放,就好比你要去图书馆看书,那么必须具备三个条件,这个图书馆必须提供书,知道图书馆叫什么名字也就是地址,而且这个图书馆得开放,这样一比较,是不是就容易记住一些呢

  内容提供者的部分就到这里,然后我们接着来看内容访问者,也就是ContentResolver,此时再新建一个项目,然后在布局文件中写一个按钮,用来查看所有数据


然后去内容提供者的那个项目里的MyContentProvider类里的查询方法写查询所有数据的方法


在内容访问者的MainActivity里写如下内容


在写uri时,需要着重注意,一定要在地址前加上content协议
先后运行该两个项目后,就可以看到如下结果了
这样一个简单的demo也算弄好了,当然,这个是在控制台显示的结果,由于时间关系,我会在下一篇博客上讲解如何将数据显示在listView上,尽请期待,如果本篇博客有什么值得改进的地方,请指出来哦



1 0
原创粉丝点击