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