汽车降价排行榜,百万亚瑟王阵营选择,朱罗世纪公园
android中对数据操作包含有:
file, sqlite3, preferences, contectresolver与contentprovider前三种数据操作方式都只是针对本应用内数据,程序不能通过这三种方法去操作别的应用内的数据。
android中提供contectresolver与contentprovider来操作别的应用程序的数据。
一、 使用方式
一个应用实现contentprovider来提供内容给别的应用来操作,
一个应用通过contentresolver来操作别的应用数据,当然在自己的应用中也可以。
1. contentresolver的获取
通过context类:
以上操作实际是通过uri来匹配contentprovider, 再由contentprovider来进行具体操作的。
操作的参数和操作sqlite各函数的参数意义是一样的。
二、实现contentprovider提供给外界访问
调用者contentresoler是通过一个uri来找到相应的contentprovider的来进行实际操作。
1. uri概念
一个uri的样子如:
如电话记录:
a.根据scheme不同调用不程序来处理, 常用的:content, android_resource, file, http等
b.authorities是provider定义的,在androidmanifest.xml中定义
c.path和id就好理解的。
2. uri定义
创建自己的uri, 如:
一般数据中都有dir和item两种(当然可定义多个)。为contentprovider创建息的urimatcher并添加这两者:
contentprovider要根据传入uri判断是dir还是item来操作的。
来分步操作.
3. 定义mime类型,
覆盖gettype方法:主要是根据uri来返回provider的mime类型
gettype()为:
4. 实现query, insert, delete, update四个操作。
具体的实现可以用sqlite, file等。并根据uri分情况操作。
a. query时如果是item加查询条件id.
where = "_id=" + uri.getpathsegments().get(1) + (!textutils.isempty(where) ? " and (" + where + ')' : "";
最后要加上
cursor.setnotificationuri(getcontext().getcontentresolver(), uri);
b. insert时要求uri只能是dir. 成功之后返回一个加id的uri.
c. update、delete与query差不多。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论