博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android四大组件之ContentProvider
阅读量:5883 次
发布时间:2019-06-19

本文共 1611 字,大约阅读时间需要 5 分钟。

ContentProvider 介绍

用于跨进程共享数据。它提供了一套完整的方案,使得一个应用程序可以访问另一个程序的数据,进行增删改查。是Android进行跨进程共享数据的标准方式。 比如,我们可以开发自己的程序访问系统的联系人列表、通话记录、短信列表等,都是使用了 ContentProvider。

ContentProvider 使用

使用 ContentProvider 获取系统数据:

如果我们仅仅是获取系统的一些数据,直接可以通过调用 Context 的方法 getContentResolver()来获取 ContentResolver 对象。然后再调用 ContentResolver 的增删改查方法来操作数据。

具体示例:

自定义 ContentProvider :

  • 用一个类继承 ContentProvider ,子类重写方法。 此时假设示例场景为给其他程序共享一个数据库。
public class MyContentProvider extends ContentProvider {    public MyContentProvider() {    }    //初始化内容提供者的时候调用,可以在里面进行数据库的创建、升级操作    //,返回 ture 则代表初始化完成。注意,只有当存在 ContentResolver    //尝试访问我们程序中的数据时,内容提供者才会被初始化    @Override    public boolean onCreate() {        return false;    }    //删除数据,可以使用URI来确定删除哪一张表中的数据,selection 和 selectionArgs 是约束条件。    @Override    public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) {        return 0;    }   /插入数据    @Override    public Uri insert(@NonNull Uri uri, ContentValues values) {        return null;    }            //查询数据    @Override    public Cursor query(@NonNull Uri uri, String[] projection, String selection,                        String[] selectionArgs, String sortOrder) {        return null;    }    //更新数据    @Override    public int update(@NonNull Uri uri, ContentValues values, String selection,                      String[] selectionArgs) {        return 0;    }    //根据传入的内容URI来返回相应的 MIME 类型    @Override    public String getType(@NonNull Uri uri) {        return null;    }}复制代码

不难发现,基本上都是一些增删改啥方法。

  • AndroidManifest.xml 中注册
复制代码
  • 其余详情参考《第一行代码.郭霖著》第7章节。

参考文献:

《第一行代码.郭霖著》

转载于:https://juejin.im/post/5c8536cbf265da2dc7073254

你可能感兴趣的文章
201521123009 《Java程序设计》第11周学习总结
查看>>
Python3之多线程学习
查看>>
MVC和MTV结构分析
查看>>
(转)微信网页扫码登录的实现
查看>>
mariadb启动报错:[ERROR] Can't start server : Bind on unix socket: Permission denied
查看>>
nginx的信号量
查看>>
云im php,网易云IM
查看>>
河南农业大学c语言平时作业答案,河南农业大学2004-2005学年第二学期《C语言程序设计》期末考试试卷(2份,有答案)...
查看>>
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
c语言 中的共用体和结构体如何联合定义,结构体(Struct)、联合体(Union)和位域
查看>>
SDL如何嵌入到QT中?!
查看>>
P1026 统计单词个数
查看>>
[js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
查看>>
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
查看>>
五 数组
查看>>
也谈跨域数据交互解决方案
查看>>
EntityFramework中使用Include可能带来的问题
查看>>
面试题28:字符串的排列
查看>>