android之ContentProvider
来源:互联网 发布:金蝶k3仓库软件多少钱 编辑:程序博客网 时间:2024/06/05 16:54
======================
如何完整的开发一个ContentProvider
1.定义自己的ContentProvider类,这个类需要继承Android提供的ContentProvider基类。
2.向Android系统注册这个类,即在AndroidManifest.xml文件中注册这个ContentProvider类
在<application .../>中添加如下元素即可,
<provider android:name=".MyProvider" =======name属性指定ContentProvider类
android:authorities="com.test.provider.MyProvider" ===========authorities相当于为该类指定域名
android:exported="true"/> ===========该ContentProvider是否允许其它应用调用该类
3.当我们通过注册文件注册后其他程序就可以通过Uri来访问Myprovider提供的数据了
Myprovider除了继承ContentProvider类之外,还要提供如下的几个方法;
->public boolean onCreate():该方法在ContentProvider创建后会被调用,其他应用程序第一次访问ContentProvider时,ContentProvider会被创建出来,并立即调用该onCreate()方法。
-> public Uri insert(Uri uri,ContentValues Values):根据Uri插入values对应的数据
-> public int delete(Uri uri,String selection,String[] selectionArgs):根据Uri删除select条件所匹配的全部记录
-> public int update(Uri uri,ContentValues Values,String selection,String[] selectionArgs):根据Uri修改select条件所匹配的全部记录。
->public Cursor query (Uri uri ,String[] projection,String selection,String selection,String[] selectionArgs,String sortorder):根据Uri查询selection条件所匹配的全部记录,其中projection就是一个列名列表,表明只选择指定的数据列。
-> public String getType(Uri uri):该方法用于返回当前Uri所代表的数据的MIME类型,如果该Uri对应数据可能包含多条记录,那么MIME类型字符串应该以vnd.android.cursor.dir/开头;如果该Uri对应的数据只包含一条记录,那么返回MIME数据类型字符串应该以vnd.android.cursor.item/开头。
这些方法并不是应用本身调用的而是给调用他的应用调用的
Uri包含三部分:content://dfdfdf/dfd
1.content://:这个部分是安卓规定的。
2.系统通过authorities定义的部分来找到操作那个ContentProvider。只要访问指定的ContentProvider,这个部分总是固定的。
3.dfd资源部分,这个部分是动态改变的
为了将Uri转换成字符串,Uri工具提供了转换parse()静态方法
Uri uri = Uri.parse("content://dfdfdf/dfd");
============
Context提供了getContentResovler()方法;
使用ContentResolver操作
->getContentResovler() 一旦获得ContentResovler对象后就可以通过下面的方法操作数据
ContentResolver cr= getContentResolver();
——>insert(Uri uri ,ContentValues values):向 Uri对应的ContentProvider中插入values对应的数据
->delete(Uri url,String where,String[] selectiongargs):删除Uri对应的ContentProvider中where提交匹配的数据。
->update(Uri uri ,ContentValues values,String where,String[] selectionArgs):更新Uri对应的ContentProvider中where提交匹配的数据。
——>query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder):查询Uri对应的ContentProvider中where提交匹配的数据
ContentProvider Uri ContentResovler 三者的关系为:ContentResovler对指定的Uri执行相应的操作,而Uri将这些操作委托给ContentProvider执行相应的操作
- android 系统之ContentProvider
- Android开发之ContentProvider
- Android之ContentProvider
- Android之ContentProvider
- Android之ContentProvider总结
- Android之ContentProvider总结
- Android之ContentProvider总结
- Android之ContentProvider总结
- Android之ContentProvider
- Android之ContentProvider详解
- Android之ContentProvider
- Android之ContentProvider总结
- Android之ContentProvider总结
- Android之ContentProvider总结
- Android之ContentProvider
- Android青翼蝠王之ContentProvider
- android之ContentProvider总结
- Android之ContentProvider
- ionic应用通过cordova拨打电话的实现
- java.lang.OutOfMemoryError: PermGen space异常解决方案
- cscope
- 为 MySQL 的查询结果添加排名字段
- css中的坑
- android之ContentProvider
- 你若懂我 该有多好
- Ajax Post Cross Domain 跨域请求 WCF RestFull
- 使用dbms_backup_restore修改DBID
- Nginx+FastCGI运行原理
- 欢迎使用CSDN-markdown编辑器
- 常用类“一”(Arrays,Integer,Character)
- js - 监测ie浏览器版本
- 如何在vi 中设置tab键为4,显示行号