我正在处理一个应用程序(API> 15),它会读取所有手机通讯录,然后建议所有申请人。
所需数据:
1.电话号码
2.电子邮件ID
流程为:
1.阅读所有手机联系人
2.将它们发送到服务器
3.与现有联系人匹配
4.将匹配的联系人发回客户端
5.建议用户这些联系人。
现在问题是我的手机中有近2000个联系人。为此,它需要46秒。这太多了。我不能让用户等待这么多。
可能的解决方案:
使用不同的线程读取几批200个触点中的触点。并行运行它们并合并结果。
问题
我尝试了但仍然花了太多时间。我认为内容解析器是线程安全的。因此它仍然无法并行地服务于不同的线程请求并且花费相同的时间。实际上比以前多一点。
我认为应该有一些其他解决方案,所有这些消息应用程序,如whatsapp使用。有人有任何想法吗?
我也可以发布代码,但它是每个人都使用的常见默认代码。我已经完成了所有类型的优化,包括不做任何额外的String变量,这些变量可能会让android一次又一次地运行垃圾收集器并增加处理时间。
答案 0 :(得分:0)
当用户启动您的应用时,将所有内容都放入服务中。在后台做一切。一旦你完成向用户弹出一些东西。 这就是我现在正在做的事情,我希望能帮到你。