从存储库返回LiveData

时间:2017-07-20 14:36:20

标签: android android-lifecycle android-architecture-components android-livedata

此示例存储库有一个方法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与您的数据/实体混合起来是不是反清洁架构?

现在也不需要使用Robolectric进行单元测试RepoRepository

1 个答案:

答案 0 :(得分:3)

LiveData的目的是让观察者知道数据何时就绪以及何时发生变化。当您从存储库返回一个LiveData对象时,您所说的是您将很快(或最终)获得调用者的数据,并且您将继续让调用者了解数据的更改或更新。 Android架构中的LiveData实现非常简单,独立于核心Android API。 Android Architecture类实际上是附加组件,使Android编程更容易,更干净。

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