0

我有我的应用程序,当输入某个活动时,我会在手机中显示联系人列表(类似于聊天应用程序,您在尝试开始新聊天时会看到联系人列表)。因此,我只想了解这些任务的实施细节,以实现最佳/高效工作。每当我进入活动时,是否每次都从我的设备中获取联系人列表(这实际上是多余的,因为我们可能一遍又一遍地做同样的工作,但是我们不能依赖 DB/SharedPref 中保存的数据,因为联系人数据是动态的并且一定会改变,所以需要你的专家建议如何以最佳方式实际完成这项工作(我已经编写了获取联系人的方法 - 所以我应该每次都重新获取联系人还是有任何其他方式,流行的聊天应用程序是什么?每次都显示联系人?

4

1 回答 1

0

就个人而言,我会在定期调用的后台线程(使用coroutines)上实现联系人的获取(可能是每次创建活动时,如您所建议的那样,或者可能在他们打开应用程序时一次)。

因为它在后台线程上,所以它会阻止他们使用应用程序(或创建活动时的任何丢帧)。他们可能有数千个联系人,或者正在使用非常慢的设备。

据推测,您可能希望存储与每个联系人关联的其他一些数据:例如,如果您打开与用户的聊天,您希望将所有消息与用户关联,所以我会使用数据库这样的领域,而不是而不是共享偏好。

所以整个过程可能看起来像这样:

  • 打开应用程序会触发一项服务,该服务会在后台线程上获取用户的所有联系人。
  • 服务会更新数据库,可能会删除不存在的联系人并添加新联系人。
  • 如果您在视图模型中处理此问题,您的片段或活动可以观察联系人列表并在其更改后更新 UI。
于 2021-01-26T15:25:45.247 回答