android 的数据库操作,以及contentProvider使用
</provider>
这里的android:authorities = "com.my.provider"是标识这个ContentProvider,调用者可以根据这个标识来找到它,
我们组合一个能找到它的Uri,
public class ProviderConst {
public static final Uri MY_TEST_URI = Uri.parse("content://com.my.provider/test");
}
content 指的是内容提供者ContentProvider。
//com.my.provider映射到我们已定义的那个ContentProvider标识
/test这个作为一个参数,传给ContentProvider,可以根据这个参数来决定操作目标,比如数据库中的哪张表,文件中的那一部分数据等。
我们来操作这个内容提供者:
private String getName()
{
String name = null;
Cursor cur = this.getContentResolver().query(ProviderConst.MY_TEST_URI,new String[]{"id","name"},null, null, null);
if (cur == null)
return null;
cur.moveToFirst();
do
{
name = name + cur.getString(1)+ "\n";
} while(cur.moveToNext());
return name;
}
我们也可以这样使用:
private String getName()
{
String name = null;
Cursor cur = this.managedQuery(ProviderConst.MY_TEST_URI,new String[]{"id","name"},null, null, null);
if (cur == null)
return null;
cur.moveToFirst();
do
{
name = name + cur.getString(1)+ "\n";
} while(cur.moveToNext());
return name;
}