【android学习】四大组件-Content Provider(内容提供者)
2017-09-01 15:07
274 查看
1,概念
ContentProvider(内容提供者)是Android中的四大组件之一。用来管理和共享应用程序的数据库。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。file, sqlite3, Preferences, ContentResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序不能通过这三种方法去操作别的应用内的数据。
android中提供ContenctResolver与ContentProvider来操作别的应用程序的数据。
比如要跨进程访问信息,可通过ContenctResolver的query、update、insert和delete方法即可。
2,分类
1)系统ContentProvider
如联系人,图片,音频,视频等数据。2)自定义ContentProvider
3,实现
一个应用实现ContentProvider来提供内容给别的应用来操作;一个应用通过ContentResolver来操作别的应用数据,当然在自己的应用中也可以。
1)ContentProvider
Android提供了一些主要数据类型的ContentProvider,比如音频、视频、图片和私人通讯录等。可在android.provider包下面找到一些Android提供的ContentProvider。通过获得这些ContentProvider可以查询它们包含的数据,当然前提是已获得适当的读取权限。2)ContentResolver
当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver类来完成,要获取ContentResolver对象,可以使用Context提供的getContentResolver()方法。4,方法
ContentProvider类种六个抽象方法。除了onCreate由系统回调并运行在主线程中,其它五个方法均由外界回调并运行在Binder线程池中。1)onCreate()
初始化provider2)query()
返回数据给调用者3)insert()
插入新数据到ContentProvider4)update()
更新 ContentProvider已经存在的数据5)delete()
从ContentProvider中删除数据6)getType()
返回ContentProvider数据的MIME类型(媒体类型),比如图片、视频。如果不关注这个选项,可以直接返回null或
*/*
5,其它
1)Uri
Uri指定了将要操作的ContentProvider,其实可以把一个Uri看作是一个网址,我们把Uri分为三部分。第一部分是”content://”。可以看作是网址中的”http://”。
第二部分是主机名或authority,用于唯一标识这个ContentProvider,外部应用需要根据这个标识来找到它。可以看作是网址中的主机名,比如”blog.csdn.net”。
第三部分是路径名,用来表示将要操作的数据。可以看作网址中细分的内容路径。
2)数据
①表格数据
ContentProvidder主要以表格的形式来组织数据,并且包含多个表,对于每个表格来说,具有行和列的层次性,行对应一条记录,列对应一条记录中的一个字段(类似数据库)。②文件数据
比如图片、视频相关文章推荐
- android四大组件之一内容提供者contentprovider
- 【Android学习之道】 四大组件之ContentProvider内容提供器
- Android四大组件之ContentProvider(内容提供者)02
- Android之四大组件之一-ContentProvider内容提供者的使用(二)
- Android四大组件之内容提供者Content Provider总结
- Android四大组件之一之内容提供者ContentProvider
- Android四大组件之一ContentProvider(内容提供者)
- Android四大组件之ContentProvider(内容提供者)01
- Android四大基本组件(2)之Service 服务与Content Provider内容提供者
- Android四大组件之ContentProvider(内容提供者)
- Android笔记---四大组件之Content Provider内容提供者详解
- Android基础之四大组件-ContentProvider(内容提供者)
- Android 四大组件之一 :ContentProvider内容提供者从入门到精通
- Android——ContentProvide 内容提供者+四大组件之三
- Android之四大组件之一-Content Provider内容提供者的介绍(一)
- android基础--SQLite数据库,四大组件之内容提供者
- Android四大组件之内容提供者
- Android四大组件-内容提供者
- Android四大组件之一ContentProvider内容提供者(继SQLite数据存储篇)
- Android四大组件之ContentProvide(内容提供者)