ContentProvider初步
来源:互联网 发布:游戏编程入门 李军 pdf 编辑:程序博客网 时间:2024/05/21 17:47
http://blog.sina.com.cn/s/blog_5688414b0100xagp.html
一、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 {
}
- ContentProvider初步
- ContentProvider初步
- ContentProvider初步
- ContentProvider初步
- ContentProvider初步
- ContentProvider初步
- ContentProvider初步
- ContentProvider---ContentProvider初步
- ContentProvider初步学习
- Android开发之ContentProvider初步
- android中contentProvider初步学习
- android中contentProvider初步学习
- Android学习十九:ContentProvider初步
- Android学习十九:ContentProvider初步
- Android学习十九:ContentProvider初步
- Android学习十九:ContentProvider初步
- Android学习第18课—ContentProvider初步
- Android核心组件之ContentProvider(一)--初步学习
- 【模式识别】感知器 Perceptron
- WPF使用资源绑定自定义类型
- php:自动创建多级文件夹
- UML面向对象中的图及各种图的作用
- git
- ContentProvider初步
- JDK的动态代理深入解析(Proxy,InvocationHandler)(转)
- 最全的Java笔试题库之问答题篇-总共243道【1~60】
- ios学习之给程序设置logo
- 我心目中的Asp.net核心对象
- 蓝桥杯java实现取球游戏
- 校草计划(Nim)
- 一个高质量的UI组件库Flexlib
- Why Programming Is The Core Skill Of The 21st Century