您的位置:首页 > 编程语言 > PHP开发

ContentProvider

2015-12-28 10:50 811 查看

ContentProvider

总:ContentProvider可以在不同应用之间实现数据共享

分:

1.Uri:包含A,B,C,D四部分

content://com.llf.test/tablename/1

A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;"content://"

B:URI 的标识,用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。它定义了是哪个Content Provider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。这个标识在 元素的 authorities属性中说明:一般是定义该ContentProvider的包.类的名称

C:路径(path),通俗的讲就是你要操作的数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就可以了;"content://com.bing.provider.myprovider/tablename"

D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部; "content://com.bing.provider.myprovider/tablename/#" #表示数据id.

把一个字符串转化为uri

Uri uri = Uri.parse("content://com.bing.provider.personprovider/person")

2.UriMatcher类使用介绍--UriMatcher类用于匹配Uri:

A.首先注册正确匹配的uri


3.[b]ContentUris类介绍:[/b]

ContentUris类用于操作Uri路径后面的ID部分,它有两个比较实用的方法:withAppendedId(uri, id)用于为路径加上ID部分:


parseId(uri)方法用于从路径中获取ID部分:

long
personid = ContentUris.parseId(uri);




4.ContentProvider类主要方法的作用:


public boolean onCreate():该方法在ContentProvider创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。


public Uri insert(Uri uri, ContentValues values):该方法用于供外部应用往ContentProvider添加数据。

public int delete(Uri uri, String selection, String[] selectionArgs):该方法用于供外部应用从ContentProvider删除数据。

public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs):该方法用于供外部应用更新ContentProvider中的数据。

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder):该方法用于供外部应用从ContentProvider中获取数据。

public String getType(Uri uri):该方法用于返回当前Url所代表数据的MIME类型。补充:如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头,否则"vnd.android.cursor.dir/person"

别忘了在配置文件中注册provider
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: