Android基础之Content Provider(待完善)

Content Provider是Android四大组件之一.使用前需要在manifest.xml中进行注册

主要是封装数据,为存储和获取数据提供统一的接口,可以在不同的应用程序之间进行数据的共享

需要调用数据时,用一个ContentResolver对象作为类似客户端来跟ContentProvider的实例进行交互.

如果你不需要让你的应用程序和其他应用程序共享数据,则不用写自己的ContetProvider类


要接触一定数据的provider时,需要在manifest.xml中声明权限

调用系统的Content Provider

比如调用联系人信息

String [] projection={Contacts._ID,Contacts.DISPLAY_NAME};

//首先获得ContentResolver对象,调用其查询query方法()

Cursor c=getContentResolver().query(Contacts.CONTENT_URI,projection,null,null,null);

//其query方法的参数是Contacts.CONTENT_URI  这个字符串其实为content://com.android.contacts/contacts

打电话,联系人,短信等都是android的系统应用,这些应用放在了/data/data目录下  字符串解析找到了这个包里的数据
//第二个参数是决定选定了哪些数据项需要返回 相当于SQL语句中的select a,b,c

//第三个参数为决定哪些行,相当于WHERE语句
//第四个参数是排序

把Cursor安排给以个SimpleCursorAdapter就能简单的显示出这些信息了

也可以从c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME));获得其具体的值进行处理


执行插入,更新,删除操作同样

ContentValues cv=new ContentValues()

cv.put(Contacts.DISPLAY_NAME,"John Smith");

cv.putNull(Contacts.PHOTO);

getResolver.insert();   update() delete()等操作

这里的操作需要对其数据库表结构比较了解,需要仔细添加


怎样自定义的ContentProvider??

posted @ 2012-02-26 15:13  nightkidzxc  阅读(636)  评论(0编辑  收藏  举报