ContentProvider与ContentResolver的交互(应用之间的数据交换)(未完)

本文介绍了ContentProvider和ContentResolver在Android应用间数据交换中的作用。通过创建一个ContentProviderModule,分为database和provider两个包,实现数据库的初始化和数据操作。ContentProvider负责提供数据,包括数据库的增删改查方法,以及onCreate()和getType(Uri uri)的重写。同时,文章提到了在AndroidManifest.xml中注册ContentProvider的步骤。接下来的部分将介绍ContentResolver如何根据ContentProvider提供的URI进行数据操作。
摘要由CSDN通过智能技术生成

整体思路:
ContentProvider和ContentResolver的使用
要使用内容提供者和内容获取者,就必须要有两个应用
1个应用是内容提供者(这里面有数据库,有数据的增删改查的方法,uri,有ContentProvider),另外1个应用是内容接收者(根据内容提供者提供的uri对提供者的数据进行相应的操作,这里有ContentResolver)。


ContentProvider(内容提供者)

首先建立一个Module命名为ContentProviderDemo,在它下面建立两个包,一个是database包,另外一个是provider包。(因为内容提供者没有数据展示,所以没有布局文件)。ContentProvider就是讲自己数据库里的数据提供出去。
1.初始化数据库和数据,并提供增删改查的方法。
在database包下建立一个MyDataBase.java的类并继承SQLiteOpenHelper。增加构造函数并重写初始化数据库和升级数据库的两个方法。代码如下。

public class MyDataBase extends SQLiteOpenHelper {
   
    //构造函数有四个参数,第一个是上下文,第二个是数据库名,第三个是游标工厂为null就行,第四个是数据库版本,默认为1。前期固定数据库名和版本号。
    private static  final String DBNAME="Students";
    private static  final int VERSION=1;

    public DataBaseOpenHelper(Context context) {
        super(context, DBNAME, null, VERSION);
    }

//在onCreate()方法中初始化数据库、建表和添加初始数据。
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table student(id Integer primary key , name varchar(20),sex varchar(2),age Integer);";
        //执行sql语句建表
        db.execSQL(sql);

        //初始化数据
        sql = "insert into student values(1,'貂蝉','女',20)" ;
        db.execSQL(sql);

        sql = "insert into student values(2,'赵云','男',24)" ;
        db.execSQL(sql);

        sql = "insert into student values(3,'小乔','女',21)" ;
        db.execSQL(sql);
    }

//升级数据库是使用onUpgrade()方法;
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

2.编写一个MyContentProvider的类继承ContentProvider将自己的数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值