MVVM的套接字​​连接

时间:2019-04-12 20:43:17

标签: java android mvvm

我正在尝试构建具有MVVM架构的聊天应用程序,但是我不知道将套接字连接类放在哪里,我需要一个想法或起点等。

单一数据源原理

我使用的是真理原理的单一数据源。举个例子:如果消息从套接字服务器传到应用程序,我的套接字类应将其保存到db,然后使用实时数据从db将其提供给观察者(这样他们将成为视图模型)。

我的应用架构

我的应用程序包含不同的活动(聊天屏幕,对话屏幕等),这些活动将遵守我的套接字连接存储库类。另外,如果用户关闭应用程序,则我的套接字连接将与该应用程序一起消失。我不需要任何后台连接。

我在问什么?

实现此功能的最佳方法是什么:

1)套接字类应使用实时数据,因为活动将对其进行观察。因此,它应该是一个存储库。 2)我的套接字类应该在应用程序打开时始终存在。

我应该为套接字存储库使用什么?服务或单例课程或其他内容?你有什么建议?我应该在哪里启动套接字连接存储库?来自应用类还是其他?

1 个答案:

答案 0 :(得分:0)

在新的Arch组件库中查看android的新LiveData和Lifecycle体系结构。

有了它,您可以从任何活动或片段中观察LiveData对象。它从您的应用程序开始,收到有关生命周期更改的通知,并随您的应用程序一起消失。另外:不会在配置更改时被破坏。

唯一的问题是必须对LiveData对象进行一些初始化。我可以在App类中完成。或在活动中(如果您的应用是单活动架构)。