Android开发,通迅薄的注意事项
2011-12-17 22:49
239 查看
上周拿到小米。最近一周在尝试开发通迅薄。一方面是系统自带的通迅薄的确有些不爽的地,一方面也是想尝试写一些手机应用。
中间碰到两个问题,估计其它人也会碰到,就一并写下。
1 效率太慢。
网上有大量的帖子(如/article/2788084.html),先要去查所有联系人(有些人根本没有电话),接着去查电话纪录(一个人可能有多个电的话)。如果你的联系很多,比如像我有600多个联系人,那打开通迅薄差不多要3秒以上(小米的硬件还是很强悍的)。问题的关键就这在两个while上。
其实只需要直接查询ContactsContract.CommonDataKinds.Phone.CONTENT_URI就可以拿到DisplayName和PhoneNumber。我想内部很可能只查了一个表就搞定了。
另外,我的应用只需要手机,所以加上以下条件
StringBuffer selection = new StringBuffer()
.append(pn + " NOT LIKE '106%'")
.append(" and substr("+pn+",0,3) != '106'")
.append(" and "+pn + " NOT LIKE '010%'")
.append(" and length("+pn + ") >= 11")
.append(" and ("+pn + " LIKE '1%' or "+pn + " LIKE '01%')");
基本上够我用了。
针对查询速度问题,有熟手自己写AyncQueryHandler。我这种菜鸟没敢尝试。
2 通迅薄拼音排序
网上的例子大部份都是
sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
本来以为Sqlite和SQL server差不多应该能换那个LOCALIZED,结果都不行。
其实一句话就能搞定
sortOrder = "sort_key_alt";
我想可能在表中有个字段就叫sort_key_alt。
二个问题都很常见,网上也有很多人问,不过正确答案确不多。另外,Android的API也的确比较乱点,中文资料也很少(个人观点)。
中间碰到两个问题,估计其它人也会碰到,就一并写下。
1 效率太慢。
网上有大量的帖子(如/article/2788084.html),先要去查所有联系人(有些人根本没有电话),接着去查电话纪录(一个人可能有多个电的话)。如果你的联系很多,比如像我有600多个联系人,那打开通迅薄差不多要3秒以上(小米的硬件还是很强悍的)。问题的关键就这在两个while上。
其实只需要直接查询ContactsContract.CommonDataKinds.Phone.CONTENT_URI就可以拿到DisplayName和PhoneNumber。我想内部很可能只查了一个表就搞定了。
另外,我的应用只需要手机,所以加上以下条件
StringBuffer selection = new StringBuffer()
.append(pn + " NOT LIKE '106%'")
.append(" and substr("+pn+",0,3) != '106'")
.append(" and "+pn + " NOT LIKE '010%'")
.append(" and length("+pn + ") >= 11")
.append(" and ("+pn + " LIKE '1%' or "+pn + " LIKE '01%')");
基本上够我用了。
针对查询速度问题,有熟手自己写AyncQueryHandler。我这种菜鸟没敢尝试。
2 通迅薄拼音排序
网上的例子大部份都是
sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
本来以为Sqlite和SQL server差不多应该能换那个LOCALIZED,结果都不行。
其实一句话就能搞定
sortOrder = "sort_key_alt";
我想可能在表中有个字段就叫sort_key_alt。
二个问题都很常见,网上也有很多人问,不过正确答案确不多。另外,Android的API也的确比较乱点,中文资料也很少(个人观点)。
相关文章推荐
- android开发注意事项
- Android 开发中的注意事项
- 微信在android平台上开发的注意事项(以官方提供的demo为例):
- Android开发应用框架的搭建步骤及注意事项
- android开发——一些非技术错误[注意事项]
- Android NDK C++开发注意事项总结
- Android生存指南:一些开发注意事项
- Android开发中使用RecyclerView注意事项
- 利用Netbean开发Android应用程序注意事项
- virtualbox ubuntu虚拟机安装配置android开发环境(eclipse+ndk+sdk)及注意事项
- Android IOS WebRTC 音视频开发总结(六)- iOS注意事项
- android开发,在UI方面注意事项
- Android 应用集成百度地图开发和注意事项
- Android NDK C++开发注意事项总结
- Android开发之Xposed开发注意事项
- android开发笔记: android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- 使用Eclipse开发Android源码的一些注意事项
- android开发相对布局那点注意事项
- Android生存指南:一些开发注意事项
- Android 6.0开发的权限注意事项