app内置通讯录的实现

来源:互联网 发布:遂宁知秋凤凰婚庆 编辑:程序博客网 时间:2024/06/03 20:26

最近项目需要一个内置通讯录的功能,实现的过程主要使用了pinyin4j.jar这个包,参考网上的代码http://blog.163.com/menxu_work/blog/static/20777441920126185390343/

发现这种写法相当致命,因为它整个的计算过程是直接放在adapter适配器里完成的,而根据标准的写法,adapter应该完成的仅仅是显示的功能,而不应该或者说很少有这样极耗时的计算(每次滑动adapter的getview方法就会调用一次,因此计算是一个很大的数量级,在通讯录人数很多的情况下,极易造成卡顿),在随后的测试环节也确实证明了我的想法,这种写法带来的卡顿相当明显,极大的干扰用户体验。

一种改进的写法是计算过程在list生成后完成,也就是在setadapter之前完成首字母的添加行为,整个adapter的作用仅仅是用来显示。在实际的项目中,为了更好的改善用户体验,更快地进行查询操作,还使用了缓存技术来保存头前缀,这样做的好处就是大大改善了检索的时间复杂度,并且所有的查询和排序动作都在异步线程内完成,更改后的通讯录实现不仅代码简单,效率和用户体验也更好,等有时间我会贴出关键的实现代码,供大家参考。

0 0
原创粉丝点击