欢迎来到天天文库
浏览记录
ID:41887159
大小:312.00 KB
页数:17页
时间:2019-09-04
《第9章使用ContentProvider》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Android程序设计第9章使用ContentProvider第9章使用ContentProviderProvider概述ContentProvider是用来解决在不同的应用间共享数据的工具使用Provider包含两部分内容使用别人创建的Provider创建一个Provider供其他程序使用Provider有点类似与Windows系统的系统服务,在系统中只有一个实例,由系统负责启动和关闭多个应用程序可以同时访问一个Provider创建Provider时需要在AndroidManifest.xml文件中声明通过getContentRes
2、olver()可以获得内含的对象从访问者的角度来看,Provider提供的是一种数据库接口9.1Provider基础第9章使用ContentProvider通过ContentProvider实现数据共享9.1Provider基础应用程序1的程序片段使用LinunxUserID1应用程序n的程序片段使用LinunxUserIDn应用程序2的程序片段使用LinunxUserID2通过ContentProvider共享数据示意图应用程序2拥用的私有文件ContendProvider2应用程序1拥用的私有文件ContendProvider1应
3、用程序n拥用的私有文件ContendProviderN第9章使用ContentProviderProvider概述应用程序可以在ContentProvider中执行如下操作:查询数据、修改数据、添加数据和删除数据Android提供了一些已经实现的标准ContentProviderCallLog:地址和接收到的电话信息Contact.People.Phones:存储电话号码Setting.System:系统设置和偏好设置Providr中查询记录的Uri格式content://+包名+Provider名+/表名+/记录id值如:Conte
4、nt://com.example/trains/123最后一项”记录id值”是可选的,省略表示访问整个表9.1Provider基础第9章使用ContentProvider9.1Provider基础insert()ContentProvider接口函数delete()query()update()getType()应用程序1应用程序3应用程序N应用程序2数据库本地数据文件2其它数据源本地数据文件1本地数据文件MContentProvider接口函数功能示意图第9章使用ContentProvider读取Provider的方法9.2读取Pr
5、ovideractivity.managedQuery()返回Cursor对象mcuractivity.getContentResolver()返回内部ContentResolver对象mResolver第1种方法mResolver.query()返回Cursor对象mCurmCur.getString()获得具体的数据第2种方法mCur.getString()获得具体的数据第9章使用ContentProviderquery()方法的语法publicfinalCursorquery(Uriuri,String[]projection,
6、Stringselection,String[]selectionArgs,StringsortOrder)uri:指定Provider的Uri地址,可用ContentUris.withAppendedId(),ContentUris.withAppendedPath()添加表名和id值Projection:包含要返回的列名称,为空返回全部列Selection:对应SQL语句中的Where子句selectionArgs:selection语句中占位符”?”对应的值sortOrder:对应SQL语句中的orderby语句manageQu
7、ery()的语法和query()完全相同9.2读取Provider第9章使用ContentProviderCursor对象Cursor对象内部有一个指针号调用getColumnIndex()方法获得列号调用getString()方法读取指针号对应的数据项moveToFirst():把指针移动到第1项记录moveToLast():把指针移动到到最后1项记录moveToNext():把指针移动到下一个记录moveToPrevious():把指针移动到上一个记录moveToPosition(intp):把指针移动到指定的位置close():
8、关闭游标9.2读取Provider第9章使用ContentProvider实例1在AndoridManifest.xml文件中加入
此文档下载收益归作者所有