Android使用contentProvider时这个代表啥意思
public void testQuery() throws Exception {
ContentResolver contentResolver = this.getContext()
.getContentResolver();
Uri url = Uri.parse("content://com.jiahui.provider.myprovider/person");
Cursor cursor = contentResolver.query(url, new String[] { "_id",
"name", "age" }, null, null, "_id");
System.out.println("ok");
Log.i("ab", "cd");
while (cursor.moveToNext()) {
System.out.println("_id:"+cursor.getInt(cursor.getColumnIndex("_id")));
System.out.println("name:"+cursor.getString(cursor.getColumnIndex("name")));
System.out.println("age:"+cursor.getInt(cursor.getColumnIndex("age")));
}
}
代码中的
Uri url = Uri.parse("content://com.jiahui.provider.myprovider/person");
是啥意思呢,
这个数据是放在哪里目录下了
------解决方案--------------------这是放在书库里面
------解决方案--------------------ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查
Uri url = Uri.parse("content://com.jiahui.provider.myprovider/person");
Uri代表了要操作的数据,Uri主要包含了两部分信息:1》需要操作的ContentProvider ,2》对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:
ContentProvider(内容提供者)的scheme已经由Android所规定, scheme为:content://
主机名(或叫Authority)用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。
路径(path)可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下:
要操作person表中id为10的记录,可以构建这样的路径:/person/10
要操作person表中id为10的记录的name字段, person/10/name
要操作person表中的所有记录,可以构建这样的路径:/person
要操作xxx表中的记录,可以构建这样的路径:/xxx
当然要操作的数据不一定来自数据库,也可以是文件、xml或网络等其他存储方式,如下:
要操作xml文件中person节点下的name节点,可以构建这样的路径:/person/name
如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法,如下:
Uri uri = Uri.parse("content://com.ljq.provider.personprovider/person")