相关疑难解决方法(0)

RxJava和缓存数据

我还是RxJava的新手,我在Android应用程序中使用它.我已经阅读了关于这个主题的公吨,但仍然觉得我错过了一些东西.

我有以下场景:

我有数据存储在系统中,可通过各种服务连接(AIDL)访问,我需要从该系统中检索数据(可能会发生1-n次异步调用).Rx帮助我简化了这段代码.但是,整个过程往往需要几秒钟(超过5秒+),因此我需要缓存此数据以加速本机应用程序.

此时的要求是:

  1. 初始订阅时,缓存将为空,因此我们必须等待所需的加载时间.没什么大不了.之后,应该缓存数据.

  2. 后续加载应该从缓存中提取数据,但是应该重新加载数据并且磁盘缓存应该在幕后.

问题:我有两个Observable - A和B. A包含从本地服务中提取数据的嵌套Observable(这里有吨).B更简单.B只包含从磁盘缓存中提取数据的代码.

需要解决:a)返回缓存项(如果已缓存)并继续重新加载磁盘缓存.b)缓存为空,从系统加载数据,缓存并返回.后续调用将返回"a".

我有几个人推荐一些操作,如flatmap,merge甚至主题,但由于某种原因,我无法连接点.

我怎样才能做到这一点?

android caching aidl rx-java

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

aidl ×1

android ×1

caching ×1

rx-java ×1