android - 不赞成使用ViewModelProviders.of()时,如何在 Activity 和服务之间共享相同的ViewModel?

标签 android mvvm lifecycle

在新的androidx.lifecycle:lifecycle-extensions:2.2.0库中,不推荐使用ViewModelProviders.of()。它建议我们应该

 * @deprecated Use the 'by viewModels()' Kotlin property delegate or
 * {@link ViewModelProvider#ViewModelProvider(ViewModelStoreOwner)},
 * passing in the activity.

但是,我想在 Activity 和服务之间共享同一ViewModel实例,所以不能使用'by viewModels()'委派。谁能指出这样做的正确方法是什么?

非常感谢

最佳答案

只需将其替换为
Activity 中:
Kotlin: ViewModelProvider(this).get(CustomViewModel::class.java) Java: ViewModelProvider(this).get(CustomViewModel.class) 服务中:
在服务类中使用关键字和新的创建viewModel的实例
这些对我有用:)

关于android - 不赞成使用ViewModelProviders.of()时,如何在 Activity 和服务之间共享相同的ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60258118/

相关文章:

java - Android数据报套接字用于udp发送

java - 在 Java 程序中使用 Linux Strace 命令

android - 使用 pydub+ffmpeg 编码的 M4a (mp4) 音频文件无法在 Android 上播放

wpf - 大声说 “ModelViewViewModel”或 “MVVM”太尴尬了!备择方案?

c# - INotifyPropertyChanged 绑定(bind)未按预期更新

ios - iOS 中的 UIViewController 和 UIView 生命周期

android - 父类(super class)android生命周期

windows-phone-7 - 我们什么时候应该用关键数据更新应用程序?

android - 垂直TextView在Android中占用太多空间

c# - 如何检测控件上的完整鼠标单击(向下和向上)?