从存储库返回 LiveData

Returning LiveData from repository

此示例存储库有一个方法 public LiveData<Resource<List<Repo>>> loadRepos(String owner)

https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/repository/RepoRepository.java

我的问题是为什么要将 Android 个 API(即 android.arch.lifecycle.LiveData)添加到数据层中?

将框架 API 与您的 data/entities 混合使用不是反清洁架构吗?

另外,现在不需要使用 Robolectric 来对 RepoRepository 进行单元测试吗?

LiveData 的目的是让观察者知道数据何时准备好以及何时发生变化。当您 return 来自存储库的 LiveData 对象时,您的意思是您将很快(或最终)为调用者获取数据,并且您将继续让调用者了解数据的更改或更新。 Android 架构中 LiveData 的实现非常简单,并且独立于核心 Android API。 Android 架构 类 实际上是使 Android 编程更容易和更干净的附加组件。

因为它独立于 Android 核心,所以您不需要 Roboelectric 来测试它。但是,您需要管理线程以进行测试,因为 LiveData 通常需要使用后台线程来为观察者获取数据。