ContentProvider //内容提供者 清单文件下注册MyContentProvider <provider android:authorities="com.zking.g150820_andorid16_sqlite.PERSON"//---唯一的名字 android:name="com.zking.provider.MyContentProvider"//----------------------类名 android:exported="true"//-----------------------------------------------------------------开放 ></provider> </application> MyContentProvider.java 继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。 重写 onCreate() 六个方法 因为Uri代表了要操作的数据,所以我们经常需要解析Uri,并从Uri中获取数 据。Android提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris。 uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); //添加规则 //01.查询所有 uriMatcher.addURI("zking.contentprovider.PERSON","student",1); //02.查询单个 uriMatcher.addURI("zking.contentprovider.PERSON","student/#",2); return false; } 使用ContentResovler操作访问ContentProvider中的数据 ContentResovler来完成,可以使用Activity的getContentResovler()方法来获取 CountentResovler对象。ContentResovler提过了和ContentProvider类似的四个 方法: 例如我们需要查询单个 (zking.contentprovider.PERSON必需和ContentProvider中清单文件注册的内容地址一致)
query() //该方法用于从ContentProvider中获取数据
getType()
insert() //添加数据
delete() //删除数据
update() //修改数据
UriMatcher类用于匹配Uri
//实例化URI匹配器
接下来,就可以
当外部应用需要对ContentProvider 中的数据进行操作时,可以使用
insert() //添加数据
delete() //删除数据
update() //修改数据
query() //该方法用于从ContentProvider中获取数据
uri = Uri.parse("content://zking.contentprovider.PERSON/student/"+id);