android - MVVM 中的 Activity 到 Activity 通信
问题描述
我们一直在使用这里提到的附加功能在活动之间共享数据。现在有了 MVVM,数据在 viewmodel 中可用,下一个要启动的活动绑定到另一个 viewmodel。
Activity1 -> ViewModel1
Activity2 -> ViewModel2
我需要在启动 Activity2 时将数据从 ViewModel1 发送到 ViewModel2
在 MVVM 架构中的活动之间共享数据的正确方法是什么?
解决方案
一种方法是使用 Parcelable 传递数据。Activity1
除此之外,在依赖倒置方面,另一种方法是在和之间共享某种数据结构的相同实例Activity2
。
假设您有一个User
类,在SignInActivity
您填写该类并ProfileActivity
从该类获取/更新数据。
因此,使用 DI 框架(如 Dagger),您可以创建一个具有应用程序生命周期的类:
class UserStore/Repository/OrWhatEver {
val user : LiveData<User>
fun update(user: User) {
// ...
}
}
要实现更多的响应式风格,您可以使用LiveData
.