欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android 本地数据库数据超过10000条排序且一次性加载解决方案

程序员文章站 2022-03-03 11:06:47
...

问题描述

本地数据库数据超过10000要求按首字母排序,且一次性加载到界面中,该如何处理,类似与系统的通讯录,一次性加载回来。

解决方案

 1)排序

    排序的实现有两种方式

  •     对象排序
    这种方式根据实现对应的Comparable的compareTo接口实现,然后根据Collection.sort方法进行排序,这种方式在数据量比较少的情况下是可以实现的,但如果数据量过大这种方式会非常慢。
  • 数据库排序

     根据数据库的order by 来实现排序,速度非常

 

  2)UI 显示

       这块非常重要,数据库查询其实非常快,10000条数据大概在400ms左右,远不会超过1s,但是查询到结果后怎么添加到界面上,因为数据量大,基数大,期间任何的转换都是性能的消耗。这里怎么做列表的设计?

当然列表显示控件还是ListView,但adpater不能使用BaseAdapter,必须使用CursorAdapter,好处在于我们查询数据的返回结果是一个cursor我们不需要做任何的转换直接填充到界面上了。

     有些同学喜欢在查询到数据后轮训cursor将其转换成map类型的list或者对象list再填充到界面,这里的轮训就会花费特别多的时间。

总结

     这里简单介绍了本地数据过多的情况下如何查询显示,当然数据量小的情况下可以不用做这种类似的处理。

相关标签: Android