Java 从类实例化ViewModel

Java 从类实例化ViewModel,java,android,viewmodel,android-viewmodel,Java,Android,Viewmodel,Android Viewmodel,情况: 收到SMS后,MyReceiver类提取SMS,然后应使用ViewModel对象将数据插入数据库。 文档重点介绍从扩展了AppCompatActivity的类实例化,但是否需要将现有活动的所有权传递给ViewModelProvider构造函数 问题是: 从公共类(不是活动)访问ViewModel对象 尝试的解决方案: 为了将这个传递给ViewModelProvider构造函数,我试图让MyReceiver实现androidx.lifecycle.viewmodelstorehowner。

情况: 收到SMS后,
MyReceiver
类提取SMS,然后应使用
ViewModel
对象将数据插入数据库。 文档重点介绍从扩展了
AppCompatActivity
的类实例化,但是否需要将现有活动的所有权传递给
ViewModelProvider
构造函数

问题是: 从公共类(不是活动)访问ViewModel对象

尝试的解决方案: 为了将
这个
传递给
ViewModelProvider
构造函数,我试图让
MyReceiver
实现
androidx.lifecycle.viewmodelstorehowner
。这需要重写方法
getViewModelStore
。但我不了解ViewModelStore是什么,也不知道如何创建它以返回ViewModel

@NonNull
@Override
public ViewModelStore getViewModelStore(){
   return ??; 
}

非常感谢您的帮助。

您的问题与此问题类似


您不应该在非活动/片段类中实例化viewmodel。在您的情况下,当触发onReceive时,您应该“通知”活动/片段,然后对该活动/片段执行操作。因此,viewmodel的实例化应该在您的活动/片段上完成

你的问题与这个问题相似


您不应该在非活动/片段类中实例化viewmodel。在您的情况下,当触发onReceive时,您应该“通知”活动/片段,然后对该活动/片段执行操作。因此,viewmodel的实例化应该在您的活动/片段上完成

这回答了你的问题吗?绝对是的,谢谢这回答了你的问题吗?当然可以,谢谢
@NonNull
@Override
public ViewModelStore getViewModelStore(){
   return ??; 
}