在 broadcastReceiver 中访问 ViewModel 生成的数据

Accessing data made by ViewModel in a broadcastReceiver

我希望能够访问我通过 AlarmViewModel 设置的警报,因为它们需要在启动时重新制作。然而,我似乎无法弄清楚如何访问同一个存储库(我通过存储库进行所有数据库访问)。

在我的 OnReceive(Context context, Intent intent) 中我有:

public void onReceive(Context context, Intent intent) {
        if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())){
            AlarmRepository alarmRepository = new AlarmRepository((Application)context.getApplicationContext());
 }
}

视图模型的构造函数是这样的:

public AlarmViewModel(Application application){
        super(application);
        repository = new AlarmRepository(application);
        allAlarms = repository.getAlarms();
    }

我的片段通过以下方式获取视图模型:

alarmViewModel = ViewModelProviders.of(requireActivity()).get(AlarmViewModel.class);

我的项目遵循这个整体数据库架构 - 它只是基于单个 activity 和片段。 https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0

错误实际上不是我没有得到正确的 alarmRepository,而是一个 LiveData 对象只是懒惰地填充,因此在我添加一个监听器之前它是空的。