- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第二十章ContentProvider
回顾了解什么是BroadcastReceiver掌握BroadcastReceiver的使用了解BroadcastReceiver的生命周期
目标了解什么是ContentProvider掌握数据操作原理掌握内置ContentProvider了解自定义ContentProvider
基础知识ContentProvider本质是一个标准化的数据管道,它屏蔽了底层的数据管理和服务等细节,以标准化的方式在Android应用间共享数据。ContentProvider相当于一个“网站”,它的作用是暴露可供操作的数据;通过ContentResolver来操作ContentProvider所暴露的数据,ContentResolver相当于HTTPClient
ContentProvider管理联系人ContactsContract.Contacts.CONTENT_URL管理联系人的UriContactsContract.CommonDataKinds.Phone.CONTENT_URI管理联系人的电话的UriContactsContract.CommonDataKinds.Email.CONTENT_URl管理联系人的E-Mail的Uri
使用系统的ContentProvider
使用系统的ContentProvideruses-permissionandroid:name=android.permission.READ_CONTACTS/uses-permissionandroid:name=android.permission.WRITE_CONTACTS/
基础知识首先获取ContentResolver实例,再调用其方法如query、delete等对指定数据进行操作ContentResolvercr=getContentResolver();
基础知识ContentProvider是以二维表格的形式来提供数据源_IDNUMBERNUMBER_KEYLABELNAMETYPE13手机BruceTYPE_MOBILE14(0756)88866668886666销售部张三TYPE_WORK
基础知识Cursor实现了对结果数据的随机读写操作Cursor的设计是基于数据库服务产生的在Android中查询数据是通过Cursor类实现的
基础知识URI:UniformResourceIndentifer,统一资源标记A部分是ContentProvider提供的URI的标准前缀,这个部分是必须的,而且不能改变B部分是ContentProvider的唯一标识,必须的。C部分代表资源路径。如果只有一种类型资源,可省略D部分代表资源的唯一ID。可省略.demo.datashare/books/101ABCD
数据操作原理-查询查询是指输入URI等参数,找到对应的ContentProvider,返回一个Cursor对象可以通过ContentResolver.query()或者Activity.managedQuery()方法实现查询使用Activity.managedQuery()返回的Cursor对象,会根据Activity的生命周期来管理Cursor对象的生命周期publicfinalCursormanagedQuery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder)
数据操作原理-查询利用ContentProvider返回的是一个二维数据表格_ID 唯一标识记录_COUNT 记录整个结果集大小_ID_COUNTNAMENUMBER132Bruce142张三(0756)8886666
数据操作原理-查询使用ID查询时,返回的数据最多只有一条返回多条记录则和JDBC的ResultSet类似,需要操作游标遍历记录集,定位到每一行,再通过getString()、getInt()等方法获取各列的值和JDBC不同的是,只能通过列的下标索引获取列的值//遍历Cursor提取数据 for(cursor.moveToFirst();(!cursor.isAfterLast());cursor.moveToNext()){ cursor.getString(cursor.getColumnIndex(columnName)); }
数据操作原理-增加将记录增加到ContentProvider中:1.在ContentValues对象中设置键值对。其中键对应ContentProvider中的列名。2.使用Conte
您可能关注的文档
- bcgc-6842 lend leases technology strategy for operational consistency v1BCGC贷款租赁技术战略用于操作一致性.pptx
- 课件秋上册数学浙教版章图形初步认识典中点习题课线段差.pptx
- 线上餐厅微商城.pdf
- 2025年全球量子传感产业发展展望.pdf
- 2025年经济与资产展望:干字当头.pdf
- 2025年江淮汽车深度研究报告(概况、业务、对外、鸿蒙等).pdf
- 2024汽车行业年度关键词盘点报告.pdf
- 2025年中国流行成分和原料消费趋势洞察.pdf
- 美妆个护行业:2025中国流行成分和原料消费趋势洞察.pdf
- 2025年抖音电商行业分析报告:宠物保健品.pdf
最近下载
- 基于PLC和SolidWorks的三层冰箱的建模与控制系统方案设计.pdf
- 2025年中国河南国际合作集团有限公司人员招聘笔试备考题库.docx
- (最新)25年春三年级英语下册Unit 2 Expressing yourself单元教学设计.docx
- 基于单片机的仓库存储无线报警系统.pdf VIP
- 基于ZigBee技术的家庭智能安全监测系统.pdf VIP
- 甘肃电力现货市场培训课件.pptx
- 跳花坡1号隧道支护结构与施工组织设计.docx
- 《人身损害误工期、护理期、营养期评定规范》(现行有效).docx VIP
- 5建立良好的公共秩序 第二课时《共同建设有序生活》课件 五年级下册道德与法治统编版.pptx
- 北京市西城区2023届高三一模数学试题(解析版).docx
文档评论(0)