Java 使用MVVM架构的Android应用程序,从使用MVVM的服务写入本地房间数据库,该服务应如何写入数据库?
在MVVM中,我们有活动和片段。片段和活动可以访问ViewModel。ViewModles可以访问存储库。 存储库可以访问本地和在线数据库 我想构建一个服务组件,这样当应用程序放在后台时,服务应该继续写入本地数据库 以下是我的应用程序的外观: 我找不到关于MVVM体系结构中如何实现服务的可靠信息 服务是否应该从中获取调用它的活动的viewModel并从中调用存储库 应该在存储库中定义服务吗 当服务写入数据库时,应该如何在MVVM体系结构中实现服务组件 还有一个类似的问题:Java 使用MVVM架构的Android应用程序,从使用MVVM的服务写入本地房间数据库,该服务应如何写入数据库?,java,android,service,android-mvvm,Java,Android,Service,Android Mvvm,在MVVM中,我们有活动和片段。片段和活动可以访问ViewModel。ViewModles可以访问存储库。 存储库可以访问本地和在线数据库 我想构建一个服务组件,这样当应用程序放在后台时,服务应该继续写入本地数据库 以下是我的应用程序的外观: 我找不到关于MVVM体系结构中如何实现服务的可靠信息 服务是否应该从中获取调用它的活动的viewModel并从中调用存储库 应该在存储库中定义服务吗 当服务写入数据库时,应该如何在MVVM体系结构中实现服务组件 还有一个类似的问题: 但是它得到了两个截然
但是它得到了两个截然不同的答案。您可以使用
LifecycleService
并像在活动或片段中一样使用它:
// helpers for implementing LifecycleOwner in a Service
implementation "androidx.lifecycle:lifecycle-service:2.3.1"
我找到了我自己问题的答案: 在存储库中创建一个静态方法,如下所示:
public static Repository getInstance(Context applicationContext) {
if (repository == null) {
repository = new Repository(applicationContext);
}
return repository;
}
repository = Repository.getInstance(getApplication());
然后在服务类中使用此方法,如下所示:
public static Repository getInstance(Context applicationContext) {
if (repository == null) {
repository = new Repository(applicationContext);
}
return repository;
}
repository = Repository.getInstance(getApplication());
现在,您已经拥有了服务内部的存储库,它可以访问数据库