Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用MVVM架构的Android应用程序,从使用MVVM的服务写入本地房间数据库,该服务应如何写入数据库?_Java_Android_Service_Android Mvvm - Fatal编程技术网

Java 使用MVVM架构的Android应用程序,从使用MVVM的服务写入本地房间数据库,该服务应如何写入数据库?

Java 使用MVVM架构的Android应用程序,从使用MVVM的服务写入本地房间数据库,该服务应如何写入数据库?,java,android,service,android-mvvm,Java,Android,Service,Android Mvvm,在MVVM中,我们有活动和片段。片段和活动可以访问ViewModel。ViewModles可以访问存储库。 存储库可以访问本地和在线数据库 我想构建一个服务组件,这样当应用程序放在后台时,服务应该继续写入本地数据库 以下是我的应用程序的外观: 我找不到关于MVVM体系结构中如何实现服务的可靠信息 服务是否应该从中获取调用它的活动的viewModel并从中调用存储库 应该在存储库中定义服务吗 当服务写入数据库时,应该如何在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());
现在,您已经拥有了服务内部的存储库,它可以访问数据库