【发布时间】:2019-11-16 13:26:57
【问题描述】:
我希望能够访问我通过 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
【问题讨论】:
标签: android android-fragments broadcastreceiver android-room android-viewmodel