一、基本概念:
1.ContentProvider为存储和获取数据提供了统一的接口;
2.使用ContentProvider可以在不同的应用程序之间共享数据;
3.Android为常见的一些数据提供了ContentProvider(包括音频、视频、图片和通讯录等等 )
直接贴下代码:
定义数据库帮助类:
package com.xinrui.smartboard.contentprovider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbOpenHelper extends SQLiteOpenHelper {
//数据库名称
private static final String DATA_BASE_NAME = "inputsource.db";
//数据库版本号
private static final int DATE_BASE_VERSION = 1;
//表名-男孩
public static final String SOURCE_TABLE_NAME = "source";
//创建表-输入源(两列:主键自增长、姓名)
private final String CREATE_SOURCE_TABLE = "create table " + SOURCE_TABLE_NAME + "(_id integer primary key autoincrement, inputsource text)";
public DbOpenHelper(Context context) {
super(context, DATA_BASE_NAME, null, DATE_BASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_SOURCE_TABLE);//创建信号源表
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//一些数据库升级操作
}
}
2.contentprovider 内容提供者:
package com.xinrui.smartboard.contentprovider;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
public class MyFirstContentProvider extends ContentProvider {
private Context context;
private SQLiteDatabase sqLiteDatabase;
public static final String AUTHORITY = "com.xinrui.smartboard.contentprovider.MyFirstContentProvider";
public static final int SOURCE_URI_CODE = 0;
private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
uriMatcher.addURI(AUTHORITY, DbOpenHelp