首页 > 解决方案 > 使用 Hilt 注入 LiveData 实例 - 好还是坏?

问题描述

问题

切入正题:在 Android 开发中,使用 Hilt 将(ActivityScoped)LiveData 实例注入 ViewModel 以观察来自多个片段的实时数据是好还是坏的做法?

这种方法是否有任何主要缺点,是否有更好的方法来实现相同的行为?我们可以考虑将部分或全部代码从片段视图模型移动到活动视图模型,因为依赖项表明这是一个更好的开始方法,但这最终会使活动视图模型变得非常大。

背景

还有一些背景,以防这有助于回答问题:

我一直在开发一个 Android 应用程序,其中我们使用 Hilt 进行依赖注入、Android 的 MVVM 架构组件以及我们对干净架构的解释,这或多或少基于这篇文章:https ://www.raywenderlich.com/3595916 -clean-architecture-tutorial-for-android-getting-started

我们的应用程序包含两个活动和几个片段,每个片段都被分配了自己的视图模型。最近随着应用程序的增长,代码库变得有些混乱,部分原因是许多片段(及其视图模型)依赖于相同的实时数据。注入视图模型的存储库和数据源通常是单例的,因此数据共享不是问题。

然而,发生的事情是我们在一个活动中保留对所有视图模型的引用,并且许多片段正在从彼此的视图模型中观察 LiveData 以更新它们的视图。这感觉像是一种次优方法,我们很快就会进入重构季节,这将使我们有机会解决这个问题。

标签: androidmvvmdependency-injectiondagger-hiltclean-architecture

解决方案


推荐阅读