关闭

Android基础知识整合篇——ContentProvider知识点

标签: androidContentResolvercursor
631人阅读 评论(0) 收藏 举报
分类:

    继续完成连载博客,上次介绍的是Service相关的基础知识,这次为大家带来ContentResolver的相关解释和说明。希望博客能给诸位一点小小的帮助!


四大组件——ContentResolver


内容提供器

主要用于不同程序间数据共享,它提供了一套完整的机制,既能完成数据的交互还能保证数据的安全性。

用法有两种

1.使用现有的内容提供器来读取和操作相应程序的数据。(读取联系人的例子)

private void readContacts(){
	Cursor cursor=null;
	try{
		cursor=getContentResolver().query(ContactsContract.CommanDataKinds.Phone.CONTENT_URI,null,null,null,null);
		while(cursor.moveToNext()){
			String displayNanme = cursor.getString(cursor.getColumnIndex(ContactsContract.CommanDataKinds.Phone.DISPLAY_NAME));
			String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommanDataKinds.Phone.NUMBER));
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(cursor!=null){
				cursor.close();
			}
		}
	}
}

用Cursor类封装全部getContentResolver().query查询出的数据,然后在分别取出。

2.创建自己的内容提供器给我们程序的数据提供外部访问的接口。

通过新建一个类去继承ContentProvider的方式来创建一个自己的内容提供器。ContentProvider中有六个抽象方法,需要重写。

public class MyProvider extends ContentProvider{
	@Override
	public boolean onCreate(){
		return false;
	}
	@Override
	public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder){
		return null;
	}
	@Override
	public Uri insert(Uri uri,ContentValues values){
		return null;
	}
	@Override
	public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs){
		return 0;
	}
	@Override
	public int delete(Uri uri,String selection,String[] selectionArgs){
		return 0;
	}
	@Override
	public String getType(Uri uri){
		return null;
	}
}
1.onCreate()初始化内容提供器的时候调用,true成功,false失败。

2.query()从提供器中查询数据,projection用于确定查询哪些列,selection和selectionArgs用于查询哪些行,sortOrder对结果进行排序,查询的结果放在Cursor对象中返回。

3.insert()添加数据的方法

4.update()更新内容提供器里已有的数据。

5.delete()删除数据的方法

6.getType()根据传入的内容的URI来返回相应的MIME类型。


实现跨进程数据共享

由于过程实在太过复杂,还需要SQLite数据库,SharedPreference,IO流等知识,不适合于基础篇,以后若是有机会我再为各位看官加一篇深度解析博客,将上面提到的知识点细分整理再写出来,而这里就不对跨进程数据共享深入解读了!


------------------------------------------------------------------------------------------------------


    好的,至此关于四大组件的相关内容就介绍的差不多了。下篇开始记录更多几个安卓核心的功能和应用!敬请关注下一篇:界面UI相关知识点。








0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java基础复习,整理知识点

最近开始复习Java基础,和Android,将知识点整理如下,另外开始尝试使用MarkDown写博客,写的有问题的地方还请各位包含。Android部分的内容整理见我的另一篇博客1.Java关键字总结梳...
  • SCUcoder
  • SCUcoder
  • 2016-03-07 19:51
  • 4226

SQL SERVER 基础篇(一):知识点、SQL语句学习及详细总结

SQL SERVER 基础篇,详细总结学习sql语句和知识点,适合入门
  • ITermeng
  • ITermeng
  • 2016-12-09 07:48
  • 2825

Android基础知识点汇总

这里收集了大家常用的一些Android代码,持续更新中,内容来自自己的平时积累和网络上看到的文章,部分原文地址在最下方。如有错误欢迎指正,如有侵权,请联系我删除。里面可能会有重复内容,请忽略,有需要的...
  • h416756139
  • h416756139
  • 2016-05-14 12:06
  • 4400

Android基础知识整合篇——Activity知识点

Android基础知识部分整合连载篇——四大组件——Activity     今天,我着手开始android基础知识总体整合以及复习(结合郭霖大神的《第一行代码》),来对我这段时间碎片化的知识进行总结...
  • wxj1018
  • wxj1018
  • 2016-05-30 20:38
  • 4922

Android基础知识整合篇——广播接收器知识点

好的,我又来完成我的个人第一个连载博客了,上次介绍的是Activity相关的基础知识,这次为大家带来广播接收器的相关解释和说明。希望博客能给诸位一点小小的帮助,也就是对我博客最大的鼓励! 四大组件...
  • wxj1018
  • wxj1018
  • 2016-05-31 16:24
  • 795

Android基础知识整合篇——Service知识点

继续完成连载博客,上次介绍的是Broadcast相关的基础知识,这次为大家带来Service的相关解释和说明。希望博客能给诸位一点小小的帮助! 四大组件——service   服务:...
  • wxj1018
  • wxj1018
  • 2016-06-01 08:36
  • 739

Android基础知识点总结

  • 2017-05-18 15:24
  • 69B
  • 下载

android基础知识点总结

  • 2015-11-26 19:53
  • 4.49MB
  • 下载

Linux学习之路——网络基础知识点汇总

1.网络基础   ISO:国际标准化组织   OSI:开放系统互联模型   IOS:苹果操作系统 ***************************************************...
  • cathywiki
  • cathywiki
  • 2016-03-05 12:35
  • 269

【C#基础知识点】——结构(if else-if、switch-case)

If if 语句: if(判断条件) { 执行的代码; } 判断条件:一般为关系表达式 或者 bool 类型的值;执行过程: 当程序运行到 If 处, 首先判断 If 所带的小括号中的判断条...
  • Joinl
  • Joinl
  • 2017-04-27 19:32
  • 342
    个人资料
    • 访问:20206次
    • 积分:459
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    博客专栏
    最新评论