【转】内容提供器ContentProvider的原理及应用
原文地址:http://1622511.blog.51cto.com/1612511/567337
在Android中的程序与程序之间数据都是私有的,即在程序A中创建的数据库或者文件只能由A自身使用,其他程序无法直接使用A中创建的数据库信息和文件信息,这样保证了程序与程序之间的独立性和数据安全。但是这样会导致在需要使用同样的数据时候数据重复声明和重复创建,产生了数据的冗余。
那么我们如何能够更好的使得不同程序之间数据的独立,而又可以在需要共享数据的时候能够有共同操作数据的桥梁呢?为了解决这个问题,Android设计了一种称为内容提供器的技术,从而为内容共享提供了支持,这就是Android的重要组件ContentProvider。我们举个例子,如果没有内容提供器,那么我们如果在需要得到手机上面的某个联系人信息就不可能得到,因此ContentProvider的作用就在于此。
ContentProvider是个什么样的东西?概况的说,ContentProvider就是为其他程序提供一个对数据访问的接口,从而可以实现对数据进行访问和更新的操作。要实现ContentProvider,需要继承ContentProvider父类并覆盖其抽象方法,这些方法即是访问和更新数据的方法。
1、删除符合指定条件的记录
在程序中使用ContentProvider是通过ContentResolver来操作,同样地,ContentResolver中也具有ContentProvider中同样名称的方法,这好对于ContentProvider中的各个操作方法,因此操作的结果就是回调ContentProvider中定义的各个方法。
ContentResolver.insert(Uri uri, ContentValues values);//插入数据 ContentResolver.delete (Uri url, String where, String[] selectionArgs);//删除数据 ContentResolver.update(Uri uri, ContentValues values, String where, String[] selectionArgs);//更新数据
这里涉及到一个叫Uri的内容,这便是程序提供给外界程序的接口地址,一般情况下,接口地址定义如下(包括包名、provider和记录ID):
进一步学习可参考:http://www.cnblogs.com/linjiqin/archive/2011/05/28/2061396.html