ContentProvider 学习
来源:互联网 发布:17173魔兽世界数据库 编辑:程序博客网 时间:2024/05/29 19:04
ContentProvider 主要用于应用间数据共享(也能说是进程间数据共享)。
ContentProvider 和ContentResolver 提供了类似一组标准的接口,前者负责数据提供,通过后者来访问前者提供的数据。ContentProvider 类似服务端,ContentResolver类似客户端。
ContentProvider 下面的数据一般对应sqlite数据库里的数据。(我想也可以是File)
ContentProvider 提供CRUD操作。
ContentProvider 和 ContentResolver自动处理进程间通信。
ContentProvider 是 其内部数据 和 外部以表形式展示的数据 间的一个抽象层。
要访问provider需要在清单文件中注册相应的权限
ContentUri
ContentUri 包括 authority (provider name) + path(table)
content://user_dictionary/wordsscheme :// authority/path
Uri,Uri.Builder,ContentUri
用ContentResolver获取数据要在非Ui线程中。
一个ContentResolver.query()的查询语句,
mCursor = getContentResolver().query( UserDictionary.Words.CONTENT_URI, // The content URI of the words table mProjection, // The columns to return for each row mSelectionClause // Selection criteria mSelectionArgs, // Selection criteria mSortOrder); // The sort order for the returned rows
其实就是去匹配下面这个sql语句
SELECT _ID, word, locale FROM words WHERE word = <userinput> ORDER BY word ASC;要哪些列,满足条件的行,按什么顺序。需要匹配用户输入的变量在mSelectionArgs里,在mSelectionClause中用占位符 ? 。
防止Sql注入
用?,而不要用连接 var = userinput (验证)
Cursor,用个ListView或者SimpleCursorAdapter来处理query返回的Cursor,但Cursor对应的表中必须有行_id.
权限管理:
provider 要想被其他应用访问,必须声明权限,其他应用申请对应权限,用户授权后其他应用就可以访问了。provider应用内的其他组件有完全的读写权限,不管provider声明权限与否。
声明权限:在<provider>子标签<android:grantUriPermission>
3种访问Provider的方式:
批处理,异步查询,发送intent
- Contentprovider学习
- 学习ContentProvider
- ContentProvider 学习
- ContentProvider学习
- ContentProvider学习
- ContentProvider学习
- 学习 ContentProvider
- ContentProvider学习
- 【转】ContentProvider学习笔记
- 文档学习 ContentProvider
- Android学习--ContentProvider
- Android ContentProvider学习
- ContentProvider 学习之01
- Android ContentProvider学习
- Android开发:ContentProvider学习
- Android ContentProvider学习
- ContentProvider学习笔记
- android学习笔记---contentProvider
- Linux中增加Swap分区文件
- request.getHeader(referer)的使用
- 关于判断web是手机端还是电脑端访问以及复制删除按钮的实现
- 调用百度翻译API
- Unity3D 场景编辑器扩展学习笔记-Handles&Event
- ContentProvider 学习
- Linux查看硬盘使用情况
- monnkey使用的两种方式
- CMMI基础知识扫盲
- CentOS系统下Apache Ant自动从SVN获取代码并通过Tomcat集群发布工程
- WinCE音频驱动
- 整合apache和tomcat构建Web服务器
- Android 项目依赖导入jar引起的Jar mismatch! Fix your dependencies
- cmd批处理延时启动的几个方法