我希望能够访问通过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);
我的项目遵循总体数据库架构-它仅基于单个活动,而是基于片段。https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0
错误实际上不是我没有得到正确的alarmRepository,而是一个LiveData对象仅被延迟填充,因此在我添加一个侦听器之前它是空的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句