Android学习笔记--Content Provider 1

简介:
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

1 . Content Provider 基本概念
A: Content Provider提供为存储和获取数据提供了统一的接口
B: 使用Content Provider可以在不同的应用程序之间共享数据
C: Android为常见的一些数据提供了Content Provider(包括音频 视频,图片和通讯录等等)
 
Android学习笔记--Content Provider 1 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
2 . Uri
A:每一个ContnetProvider都拥有一个公共的URI,这个URI用于表示这个ContnetProvider所提供的数据
B: Android所提供的ContentProvider都存放在android.provider包当中
3 . Contnet Provider 实现方法
Query 
Insert
Update
Delete
getType
onCreate
4 . 实现ContentProvider的过程
A: 定义一个Content_URI 常量
B: 定义一个类 继承ContentProvider
C: 实现query , insert update,delete getType,onCreate方法;
D: AnroidManifest.xml当中进行声明;

例 :  // DatabaseHelper所为一个访问SQLite的助手类, 提供两个方面的功能
// 第一, getReadableDatabase() 和 getWritableDatabasr() 可以获得SQLiteDatabase对象
// 第二, 提供onCreate 和 onUpgrade 两个回调函数 , 允许我们在创建和升级数据库时, 进行操作
例 : public class DatabaseHelper extends SQLiteOpenHelper {
  // 数据库版本号
Private static final int VERSION = 1;

// 必须的构造函数
Public DatabaseHelper (Context context , String name , CursorFactory factory , int version) {
Super(context , name , factory , version);
}

Public DatabaseHelper (Context context , String name ,  int version) {
Super(context , name , null , version);
}

Public DatabaseHelper (Context context , String name) {
Super(context , name , null , VERSION);
}

Public void onCreate(SQLiteDatabase db) {
System.out.println("create a database");
// 拼出了建表的语句
db..execSQL("create table" +  FirstMetaData.USER_TABLE_NAME
+ "(" + FirstMetaData.UserTableMetaData._ID
+ "INTEGER PRIMARY KEY AUTOINCREMENT,"
+ FirstMetaData.UserTableMetaData.USER_NAME
+ " varchar(20));";
}


Public void onUpgrade(SQLiteDatabase db) {
System.out.println("update a database");
}
}

ContentProviderActivity 例  1 . 声明控件对象(略)
 2 . 获得控件对象(略)
 3 . 绑定事件(略)
 4 . 创建监听器对象
// insert
Public void onClick(View v) {
ContentValues values = new ContentValues ();
Values.put( FirstMetaData.UserTableMetaData.USER_NAME , "zhangsan" );
Uri uri = getContentesolver().insert( FirstMetaData.UserTableMetaData.CONTENT_URI , values );
System.out.println("uri ---->" + uri.toString());
}

// query
Public void onClick(View v) {
Cursor c= getContentResolver().query(
FirstMetaData.UserTableMetaData.CONTENT_URI , null , null , null , null
) ;
While(c.moveToNext()) {
System.out.println(c.getString(c.getColumnIndex(UserTableMeatData.USER_NAME)));
}

}




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360568,如需转载请自行联系原作者



相关文章
|
数据库 Android开发 开发者
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
652 0
|
XML Java Android开发
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
810 0
|
SQL XML Java
Android 这 13 道 ContentProvider 面试题,你都会了吗?
Android 这 13 道 ContentProvider 面试题,你都会了吗?
|
安全 数据库 Android开发
45. 【Android教程】内容提供者 - Content Provider
45. 【Android教程】内容提供者 - Content Provider
348 2
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
|
存储 安全 Android开发
Android数据存储:请解释ContentProvider是什么,它的主要作用是什么?
ContentProvider是Android的四大组件之一,主要负责结构化数据的管理与共享。它封装数据并提供安全的访问接口,通过URI实现应用间数据的标准化共享。ContentResolver与ContentProvider协作,处理数据的CRUD操作,使得其他应用能方便地调用和操作数据。
204 0
|
数据库 Android开发 Kotlin
android开发,使用kotlin学习ContentProvider
android开发,使用kotlin学习ContentProvider
274 0
|
API 数据库 Android开发
Android ContentProvider内容提供者详解
Android ContentProvider内容提供者详解
287 2
|
缓存 安全 数据库
Android学习笔记4
Android学习笔记4
203 0

热门文章

最新文章