![]() |
1
4
我喜欢射击项目。:天
就像大家说的那样
我要做的是有一个包含事件数据的LiveData。此事件将根据您的业务逻辑从您的ViewModel中激发(可能您正在显示倒计时,并在它结束时移动到下一个活动?)。它是一个
你可能想看看 SingleLiveEvent |
|
2
5
您应该从activity调用startActivity,而不是viewmodel。如果您想从viewmodel打开它,您需要在viewmodel中创建带有一些导航参数的livedata,并观察活动中的livedata。 |
![]() |
3
3
所以,viewmodel应该不知道视图以及它如何向用户显示信息。
|
![]() |
4
1
如果viewmodel对活动一无所知,这将是一个不错的设计选择。基本上,viewmodel和activity扮演可观察和观察的角色。ViewModel作为存储库、业务模型或编排层的包装器,提供了反应式的数据流,并起到了显著的作用。这意味着,作为观察者,多个活动或片段可以监听一个视图模型。 因此,最好保持糟糕的耦合,不要把一个特定的活动紧绑在一个视图模型上,但是移动开发人员之间的一个普遍惯例是,他们更喜欢为一个活动/片段创建一个视图模型。 如果您有需要上下文的refinition或okhttp或其他库,请通过dagger2或Koin DI库传递上下文。这将是一个干净的建筑。 |
![]() |
5
0
|