我正在尝试使用 MVVM 架构构建一个聊天应用程序,但我不知道将我的套接字连接类放在哪里,我需要一个想法或起点等。
单一数据源原则
我正在使用单一数据源的真实原则。举个例子:如果消息从套接字服务器发送到应用程序,我的套接字类应该将其保存到数据库,然后应该使用实时数据将其从数据库提供给观察者(因此它们将成为 View 模型)。
我的应用架构
我的应用程序包含不同的 Activity (聊天屏幕、对话屏幕等),这些 Activity 将观察到我的套接字连接存储库类。此外,如果用户关闭应用程序,我的套接字连接将随着应用程序终止。我不想要任何后台连接。
我在问什么?
实现此功能的最佳方法是什么:
1) Socket 类应该使用实时数据,因为 Activity 会观察到它。所以它应该是一个存储库。
2)我的套接字类应该在应用程序打开时始终存在。
我应该为套接字存储库使用什么?服务或单例类或不同的东西?你有什么建议?我应该从哪里开始套接字连接存储库?从应用程序类或不同的东西?
最佳答案
在新的 Arch 组件库中查看 android 的新 LiveData 和 Lifecycle 架构。
有了它,您可以从任何 Activity 或 fragment 中观察 LiveData 对象。它从您的应用程序开始,收到有关任何生命周期更改的通知,然后随着您的应用程序终止。另外:在配置更改时不会被破坏。
唯一的问题是必须启动 LiveData 对象。我可以在 App 类中完成。或者,如果您的应用是单 Activity 架构,则在 Activity 中。
关于java - 与 MVVM 的套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55659164/