Android保存数据的方式有很多,文件、SQLite、Sharepreference,他们都是应用内共享的,就是自己的东西自己用,那如果是自己的数据需要共享给别的应用或者自己的应用需要获取别的应用的数据,上面的方式就显得无恩纳该为力了。这时候需要用到androud四大组件之一的ConrentProvider了。
ComtentProvider的作用是比较明确的:应用间共享数据。
1.相关概念
- URI:这是一个共用的uri,用于提供给外界访问的,样式如下:
Uri uri = Uri.parse("content://com.xxx.xxx/tablename");
content:表示域,我们使用的时候不需要更改
com.xxx.xxx:唯一标志符,一般用自己的包名
tablename:要访问的数据库表的名称。
2. 获取数据
获取数据需要用到ContentResolver这个类,最简单的方法如下:将uri中对应表的数据全部取回来,然后选择自己需要的数据:
contentResolver = context.getContentResolver();
cursor = contentResolver.query(uri, null, null, null, null);
if (null != cursor && cursor.getCount() > 0) {
if (cursor.moveToNext()) {
String str=cursor.getString(cursor.getColumnIndex("text"));
...
}
}