ContentProvider是应用程序之间共享数据的接口
除了ContentProvider可以使应用程序之间实现数据共享之外,还有文件,sp等,存在sd卡上既可以实现文件、sp的数据共享。
1.创建一个ContentProvider
1.1创建一个内容提供者PersonContentProvider,继承ContentProvider类,并在清单文件AndroidManifest.xml文件中进行声明:除name属性之外,还必须添加authorities属性。
1.2 在PersonContentProvider中声明一个成员变量UriMatcher,在UriMatcher中添加一些Uri标识,用于区分操作的是哪张表。
初始化UriMatcher的操作一般在静态代码块中完成。
1.3 重写ContentProvider中的方法,要被重写的方法如下:
onCreate 其它应用第一次访问时被调
insert 外部应用使用此方法添加数据
delete 外部应用使用此方法删除数据
update 外部应用使用此方法更新数据
query 外部应用使用此方法查询数据
注意:query方法返回的是一个游标结果集对象Cursor,因此在query方法中不可以关闭数据库的连接,因为Cursor只是一个指向数据库的指针,而不是一个真正的集合,若在query方法中关闭了数据库连接,调用方得到的Cursor对象将是空的关闭数据库的操作可以交由内容提供者在外部程序调用完毕后自动关闭
1.4 其他的应用程序,只需知道PersonContentProvider的Uri,就可以访问了
2.外部程序调用ContentProvider
添加示例:
删除示例:
修改示例:
查询全部示例:
查询单个示例: