Activity 到 Activity MVVM 中的通信
Activity to Activity communication in MVVM
我们一直在使用上述 here 等附加功能在活动之间共享数据。现在使用 MVVM,数据在视图模型中可用,下一个要启动的 activity 绑定到另一个视图模型。
Activity1 -> ViewModel1
Activity2 -> ViewModel2
我需要在启动 Activity2 时将数据从 ViewModel1 发送到 ViewModel2
在 MVVM 架构中的活动之间共享数据的正确方法是什么?
一种方法是使用 Parcelable 传递数据。
除此之外,在依赖倒置方面,另一种方法是在 Activity1
和 Activity2
之间共享某种数据结构的相同实例。
假设您有一个 User
class,在 SignInActivity
中您填写此 class 并在 ProfileActivity
中您 get/update 数据来自class。
因此,使用 DI 框架(如 Dagger),您可以创建一个具有应用程序生命周期的 class:
class UserStore/Repository/OrWhatEver {
val user : LiveData<User>
fun update(user: User) {
// ...
}
}
要实现更响应式的风格,您可以使用LiveData
。
我们一直在使用上述 here 等附加功能在活动之间共享数据。现在使用 MVVM,数据在视图模型中可用,下一个要启动的 activity 绑定到另一个视图模型。
Activity1 -> ViewModel1
Activity2 -> ViewModel2
我需要在启动 Activity2 时将数据从 ViewModel1 发送到 ViewModel2
在 MVVM 架构中的活动之间共享数据的正确方法是什么?
一种方法是使用 Parcelable 传递数据。
除此之外,在依赖倒置方面,另一种方法是在 Activity1
和 Activity2
之间共享某种数据结构的相同实例。
假设您有一个 User
class,在 SignInActivity
中您填写此 class 并在 ProfileActivity
中您 get/update 数据来自class。
因此,使用 DI 框架(如 Dagger),您可以创建一个具有应用程序生命周期的 class:
class UserStore/Repository/OrWhatEver {
val user : LiveData<User>
fun update(user: User) {
// ...
}
}
要实现更响应式的风格,您可以使用LiveData
。