数据:ContentProvider类
一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数据库中表的方式将数据暴露。
Content providers存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。
要想使应用程序的数据公开化,可通过2种 方法:
1)创建一个属于你自己的Content provider
2)将你的数据添加到一个已经存在的Content provider中,前提是有相同数据类型并且有写入Content provider的权限
从数据共享的角度出发,ContentProvider应该是Android在系统启动时就创建了,否则就谈不上数据共享了。 这就要求在AndroidManifest.XML中使用<provider>元素明确定义。
当应用需要通过ContentProvider对外共享数据时,步骤如下:
【1】继承ContentProvider并重写下面方法:
public class PersonContentProvider extends ContentProvider{
public boolean onCreate()public Uri insert(Uri uri, ContentValues values)public int delete(Uri uri, String selection, String[] selectionArgs)public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)public String getType(Uri uri)}
【2】在AndroidManifest.xml使用<provider>对该ContentProvider进行配置:
<manifest .... ><application android:icon="@drawable/icon" android:label="@string/app_name"><provider android:name=".PersonContentProvider" android:authorities="cn.itcast.provider.personprovider"/></application></manifest>
注意:一旦应用继承了ContentProvider类,后面我们就会把这个应用称为ContentProvider(内容提供者)