使用 ContentProviderOperation 来提升性能
2014-10-10 08:40
267 查看
ContentProviders 是android 系统核心组件之一,ContentProviders 封装了数据的访问接口,其底层数据一般都是保存在数据库中或者保存在云端。
有时候你需要更新多行数据,可以选择调用多次
为了使批量更新、插入、删除数据更加方便,android系统引入了
在官方开发文档中推荐使用
所有的操作都在一个事务中执行,这样可以保证数据完整性
由于批量操作在一个事务中执行,只需要打开和关闭一个事务,比多次打开关闭多个事务性能要好些
使用批量操作和多次单个操作相比,减少了应用和content provider之间的上下文切换,这样也会提升应用的性能,并且减少占用CPU的时间,当然也会减少电量的消耗。
要创建获取Builder 对象的函数
这个Buidler对象使用了著名的Builder设计模式。
由于Builder对象的函数都返回了自己,所以通过一系列的函数调用即可生成最终的ContentProviderOperation对象。
当然 你还可以使用熟悉的ContentValues对象,对应的函数为withValues(values)。
下表是Builder对象核心函数的介绍:
Builder主要函数介绍
另外注意上面示例代码中是使用[code]ArrayList来保存 ContentProviderOperation操作的。后面在介绍
最后通过ContentResolver 的applyBatch()函数来应用批量操作:
批量操作很简单,提示性能很容易!
如果您还没有使用ContentProviderOperation,赶紧修改吧
http://www.cnblogs.com/tt_mc/p/3966707.html http://blog.csdn.net/woshinia/article/details/9024265
有时候你需要更新多行数据,可以选择调用多次
ContentResolver的对应函数,或者 使用批量操作。当然 后者性能会比较好些。
为了使批量更新、插入、删除数据更加方便,android系统引入了
ContentProviderOperation类。
在官方开发文档中推荐使用
ContentProviderOperations,有一下原因:
所有的操作都在一个事务中执行,这样可以保证数据完整性
由于批量操作在一个事务中执行,只需要打开和关闭一个事务,比多次打开关闭多个事务性能要好些
使用批量操作和多次单个操作相比,减少了应用和content provider之间的上下文切换,这样也会提升应用的性能,并且减少占用CPU的时间,当然也会减少电量的消耗。
要创建
ContentProviderOperation对象,则需要使用ContentProviderOperation.Builder类,通过调用下面几个静态函数来获取一个Builder 对象:
函数 | 用途 |
---|---|
newInsert | 创建一个用于执行插入操作的Builder |
newUpdate | 创建一个用于执行更新操作的Builder |
newDelete | 创建一个用于执行删除操作的Builder |
由于Builder对象的函数都返回了自己,所以通过一系列的函数调用即可生成最终的ContentProviderOperation对象。
下表是Builder对象核心函数的介绍:
函数 | 用途 |
---|---|
withSelection (String selection, String[] selectionArgs) | 指定需要操作的数据条件。只有在更新、删除操作中有用。 |
withValue (String key, Object value) | 定义一列的数据值。只在更新、插入数据中有用。 |
withValues (ContentValues values) | 定义多列的数据值。 只在更新、插入数据中有用。 |
withValueBackReference()函数作用的时候就知道为啥用有序的ArrayList而不是其他List。
最后通过ContentResolver 的applyBatch()函数来应用批量操作:
如果您还没有使用ContentProviderOperation,赶紧修改吧
http://www.cnblogs.com/tt_mc/p/3966707.html http://blog.csdn.net/woshinia/article/details/9024265
相关文章推荐
- 使用 ContentProviderOperation 来提升性能
- 使用 ContentProviderOperation 来提升性能
- 使用 ContentProviderOperation 来提升性能
- 使用ContentProviderOperation 来提升应用性能
- 使用 ContentProviderOperation 来提升性能
- 使用 ContentProviderOperation 来提升性能
- 使用 ContentProviderOperation 来提升性能
- ContentProvider中的ContentProviderOperation使用方法
- 11_android系统联系人(更新用户名称为例)介绍ContentProviderOperation的使用
- 为 PHP 应用提速、提速、再提速!,第 1 部分: 使用操作码缓存软件提升性能和吞吐量
- web应用中使用缓存提升性能的8种武器
- web应用中使用缓存提升性能的8种武器
- web应用中使用缓存提升性能的8种武器
- 使用虚拟表格和虚拟树提升SWT应用程序性能
- web应用中使用缓存提升性能的8种武器
- 使用虚拟表格和虚拟树提升SWT应用程序性能
- web应用中使用缓存提升性能的8种武器
- web应用中使用缓存提升性能的8种武器
- [转]为 PHP 应用提速、提速、再提速!,第 1 部分: 使用操作码缓存软件提升性能和吞吐量
- web应用中使用缓存提升性能的8种武器