内容提供者简单使用

今天学习的是内容提供者ContentProvider和内容访问者ContentResolver
说一下我的理解,这个组件的用处是在系统或者其他app中获得数据的功能
系统里比如通讯录,比如短信等等,而且是跨app的,但前提是对方必须有提供者你才能访问
我觉得给我最深感触的就是第三方登录这个

今天有点事情,长话短说,步骤都在代码里面

public class ContentProvi extends ContentProvider {

    private DbHelper dbHelper;
    private SQLiteDatabase sqLiteDatabase;

    @Override
    public boolean onCreate() {
        dbHelper = new DbHelper(getContext(),"person.db",null,2);
        sqLiteDatabase = dbHelper.getReadableDatabase();
        return false;
    }
	//查询
    @Nullable
    @Override
    public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1){

      return sqLiteDatabase.query(false,"person",strings,s,strings1,null,null,s1,null);
}

    @Nullable
    @Override
    public String getType(Uri uri) {
        return null;
    }
	//添加
    @Nullable
    @Override
    public Uri insert(Uri uri, ContentValues contentValues) {
        sqLiteDatabase.insert("person","name",contentValues);
        return null;
    }
	//删除
    @Override
    public int delete(Uri uri, String s, String[] strings) {
        sqLiteDatabase.delete("person",s,strings);
        return 0;
    }
	//修改
    @Override
    public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {
       sqLiteDatabase.update("person",contentValues,s,strings);
        return 0;
    }

首先呢就是写一个类,用于提供你想要提供的数据,一共重写了六个方法,创建,返回类型,以及增删改查

然后就是访问者
直接用
context.getContentResolver();拿到对象

然后就开始各种增删改查

public final Uri insert(Uri url, ContentValues values)
public final int delete(Uri url, String where,  String[] selectionArgs)
public final int update(Uri uri, ContentValues values, String where, String[] selectionArgs) 
public final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

四个放法望着一摆,需要注意的是之前需要的类名在这里要用url,可以将字符串转换成url,用parse方法

然后取出来的是结果集cursor

INTERESTING!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值