我正在构建一个应用程序,用户可以在其中与安装了此应用程序的设备的联系人(使用 phoneNumber)进行交互(几乎是 Whatsapp、Viber 的功能)
现在这个功能可以通过函数getContacts()来实现
- 将所有应用程序注册存储在我的服务器上
- 从应用程序,将所有联系人发送到服务器并在服务器响应中接收注册的联系人
但是,在添加/删除联系人或更新现有联系人的情况下,这会导致同步问题
为此,我的知识引导我选择三种选择
- 每次启动应用程序时,调用此 getContacts() 方法,以便检索到的数据是最新的
- 不确定这是否是 Whatsapp 和 viber 使用的方法,它可以实现,但在每次启动期间都有很多不必要的处理
- 让后台服务通过 getContacts() 方法轮询服务器
- 这可以保持联系人同步
- 但是,这不会立即刷新更改。在 Whatsapp 中,如果我更改联系人的姓名,它几乎会立即反映
- 在 ContactsContract.CONTENT_URI 上注册一个 ContentObserver(对此真的没什么想法)
请提供您的见解