Android ContentProvider
来源:互联网 发布:好帮手软件简介 编辑:程序博客网 时间:2024/06/08 15:01
一、Content Provider基本概念
1、ContentProvider为存储和获取数据提供了统一的接口。ContentProvide对数据进行封装,不用关心数据存储的细节。使用表的形式来组织数据。
2、使用ContentProvider可以在不同的应用程序之间共享数据。
3、Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)。
ContentProvider所提供的函数:
query(),insert(),update(),delete(),getType(),onCreate()等。
为系统的每一个资源给其一个名字,比方说通话记录。
1、每一个ContentProvider都拥有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。
2、Android所提供的ContentProvider都存放在android.provider包中。
A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;"content://"
C:路径,不知道是不是路径,通俗的讲就是你要操作的数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就ok了;"content://hx.android.text.myprovider/tablename"
D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部;"content://hx.android.text.myprovider/tablename/#" #表示数据id
三、ContentProvider的实现过程
自己实现ContentProvider不常见,因为可能不需要和别的应用程序交换数据。使用内置的ContentProvider比较多。
public static final Uri CONTENT_URI =Uri.parse("content://com.example.codelab.transportationprovider");
其中:content是协议
Uri.parse将一个字符串转换成Uri类型。
如果Provider包含子表,同样定义包含字表的CONTENT_URI。
content://com.example.codelab.transportationprovider/train
content://com.example.codelab.transportationprovider/air/domestic
content://com.example.codelab.transportationprovider/air/international
然后定义列,确保里面包含一个_id的列。
public class FirstContentProvider extends ContentProvider
先介绍一下ContentProvider用到的UriMatcher。UriMatcher的一个重要的函数是match(Uri uri)。这个函数可以匹配Uri,根据传入的不同Uri返回不同的自定义整形值,以表明Uri访问的不同资源的类型。
public static final UriMatcher uriMatcher;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(Book.AUTHORITY, "item", Book.ITEM);
uriMatcher.addURI(Book.AUTHORITY, "item/#", Book.ITEM_ID);
}
<!-- android:name是完成ContentProvider类的全称
android:authorities是和FirstProvidermetaData中的常量AUTHORITY的值一样,否则会报错
-->
<provider android:name="com.bj.FirstContentProvider"
android:authorities="com.bj.firstcontentprovider"
/>
四、具体代码
Activity19Activity.java
public class Activity19Activity extends Activity {
}
FirstContentProvider.java
public class FirstContentProvider extendsContentProvider {
}
FirstProvidermetaData.java
public class FirstProvidermetaData {
}
- android contentprovider
- android contentprovider
- Android ContentProvider
- android ContentProvider
- Android ContentProvider
- android ContentProvider
- android ContentProvider
- Android ContentProvider
- Android ContentProvider
- android ContentProvider
- Android ContentProvider
- android contentprovider
- android contentProvider
- Android ContentProvider
- Android ContentProvider
- Android ContentProvider
- Android ContentProvider
- android contentprovider
- 什么叫做第三方支付?
- 用c++实现日期类函数的重载
- ContentObserver内容监听者(内容观察者)
- 模块
- 关于css的选择器
- Android ContentProvider
- 服务状态的工具类
- Tomcat系列—JDK安装(tar.gz)
- JS 中关于document和window对象的一些值: scrollHeight,scrollLeft,scrollTop,scrollWidth等。。
- dubbox编译
- 汇编1
- HihoCoder第十周——已知前序中序求后序
- JDBC增删改查 代码演示
- css一些常用属性