我正在寻找处理以下用例w.r.t.的建议。实时数据处理:ViewModel为LiveData调用存储库(例如产品目录)。存储库首先从LocalDataSource(Room)检查,但如果数据不可用,则调用RemoteDataSource(RESTAPI)。问题:1)根据yigithere的以下评论,Repository在以观察者身份订阅之前无法获取Room中的LiveData可用性状态。因此,即使数据可用,我也会得到null作为响应。“LiveData就是看数据,然后分发给观察者,直到有活跃的观察者加入,它才会计算值(value)。”由于Repository向客户端隐藏了数据源,因此R
我的应用使用Android的Architecturecomponents库并显示从具有无限滚动效果的分页RESTapi获取的项目列表。我想做的是使用PagingLibrary结合NetworkBoundResource,这样当用户向下滚动列表时,下一个项目会从数据库中获取并显示(如果它们存在),同时调用API来更新数据库中的项目。我找不到这两种模式共存的任何例子。这是DAO:@Query("SELECT*FROMitemsORDERBYidDESC")LivePagedListProviderloadListPaginated();这是我的NetworkBoundResource实现:
当我尝试为RoomDb和Retrofit实现NetworkBoundResource和Resource帮助程序类时,它工作得很好。但是,我需要使用RetrofitonlywithoutRoom实现来自RESTful的搜索结果。Resources类很好,我不需要更改它。我想要做的是尝试删除此类中的数据库源。publicabstractclassNetworkBoundResource{privatefinalAppExecutorsappExecutors;privatefinalMediatorLiveData>result=newMediatorLiveData();@MainThr
Google的android架构组件教程here有一部分解释了如何抽象化通过网络获取数据的逻辑。在其中,他们创建了一个名为NetworkBoundResource的抽象类,使用LiveData创建一个react流作为所有反应性网络请求的基础。publicabstractclassNetworkBoundResource{privatefinalAppExecutorsappExecutors;privatefinalMediatorLiveData>result=newMediatorLiveData();@MainThreadNetworkBoundResource(AppExecu