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