android - 使用 Hilt 注入 LiveData 实例 - 好还是坏?
问题描述
问题
切入正题:在 Android 开发中,使用 Hilt 将(ActivityScoped)LiveData 实例注入 ViewModel 以观察来自多个片段的实时数据是好还是坏的做法?
这种方法是否有任何主要缺点,是否有更好的方法来实现相同的行为?我们可以考虑将部分或全部代码从片段视图模型移动到活动视图模型,因为依赖项表明这是一个更好的开始方法,但这最终会使活动视图模型变得非常大。
背景
还有一些背景,以防这有助于回答问题:
我一直在开发一个 Android 应用程序,其中我们使用 Hilt 进行依赖注入、Android 的 MVVM 架构组件以及我们对干净架构的解释,这或多或少基于这篇文章:https ://www.raywenderlich.com/3595916 -clean-architecture-tutorial-for-android-getting-started
我们的应用程序包含两个活动和几个片段,每个片段都被分配了自己的视图模型。最近随着应用程序的增长,代码库变得有些混乱,部分原因是许多片段(及其视图模型)依赖于相同的实时数据。注入视图模型的存储库和数据源通常是单例的,因此数据共享不是问题。
然而,发生的事情是我们在一个活动中保留对所有视图模型的引用,并且许多片段正在从彼此的视图模型中观察 LiveData 以更新它们的视图。这感觉像是一种次优方法,我们很快就会进入重构季节,这将使我们有机会解决这个问题。
解决方案
推荐阅读
- visual-studio - VSTS 和 VS 2017 pro - 团队资源管理器除了 master 看不到其他分支
- python - 使用 python3 为 msvc 构建 boost python - 链接器错误
- android - android编译器错误,文件中没有错误
- android - Mockito 不适用于 androidTest
- node.js - 如何从当前 Lambda 函数调用另一个 Lambda 函数?
- java - 为什么在这种情况下不会发生死锁
- neural-network - 瓶颈层的辍学率
- visual-studio-code - 建议的扩展是本地计算还是远程计算?
- wordpress - 资源门户需要一些 get_terms 帮助
- css - 清除图标以及 PrimeNG 自动完成上的加载图标