Activity 到 Activity MVVM 中的通信

Activity to Activity communication in MVVM

我们一直在使用上述 here 等附加功能在活动之间共享数据。现在使用 MVVM,数据在视图模型中可用,下一个要启动的 activity 绑定到另一个视图模型。

Activity1 -> ViewModel1

Activity2 -> ViewModel2

我需要在启动 Activity2 时将数据从 ViewModel1 发送到 ViewModel2

在 MVVM 架构中的活动之间共享数据的正确方法是什么?

一种方法是使用 Parcelable 传递数据。 除此之外,在依赖倒置方面,另一种方法是在 Activity1Activity2 之间共享某种数据结构的相同实例。

假设您有一个 User class,在 SignInActivity 中您填写此 class 并在 ProfileActivity 中您 get/update 数据来自class。

因此,使用 DI 框架(如 Dagger),您可以创建一个具有应用程序生命周期的 class:

class UserStore/Repository/OrWhatEver {
    val user : LiveData<User> 

    fun update(user: User) {
      // ...
    }
}

要实现更响应式的风格,您可以使用LiveData