Android 内容提供器小结

来源:互联网 发布:网络订餐食品安全现状 编辑:程序博客网 时间:2024/05/01 16:33

现阶段浅薄的理解,只是为了方便记忆,准确性什么的以后再说吧

概括:

1、首先应该有两个app,一个作为内容的提供者A,继承ContentProvider抽象类,并在A的AndroidManifest.xml添加< provider >标签进行注册。(有一点需要说明下,A在正常运行的时候可能会建立数据库,自定义ContentProvider里面也会建立数据库,如果除了版本号不同,其他参数相同的话,那么SQLiteOpenHelper的onUpdate方法会执行)
2、在另一个app B,作为内容的接收者,想要去提取A中的数据,利用Uri,然后用getContentResolver()方法得到ContentResolver实例,这时就可以调用insert(),delete()等方法了。

具体细节:

内容提供者:

继承抽象方法ContentProvider,借助UriMatcher实现匹配URI。UriMatcher提供了addURI()方法,接收三个参数,分别把权限、路径、和一个自定义标志穿进去。然后用UriMatcher的match(URI uri)方法时,传入uri,返回值是前面定义的标志,利用这个代码就知道访问那张表中的数据了。
在onCreate中新建SQLiteOpenHelper。
其他insert(),delete(),update(),query()等方法大概相同。首先根据UriMatcher的match()方法返回的自定义标志,进行对相应的表或表中数据的操作,操作的内容就是SQLiteOpenHelper的getWritableDatabase()或getReadableDatabase()获得SQLiteDatabase实例,然后就是数据库的增删改查操作,参考以前的博客就好。

内容需求者:

利用getContentResolver()获得ContentResolver实例,然后通过ContentResolver对内容进行增删改查。还可以直接接收系统自带的URI完成一些复杂操作。

0 0