RxJava - 从缓存的observable中删除项目

时间:2017-04-06 07:23:39

标签: caching rx-java rx-java2

我正在使用如下代码:

<option>

使用以下辅助函数:

Angular 2

现在我想编辑此observable中的缓存数据。我可以简单地重置public Observable<DBContact> getFriends() { if (mFriends == null) { mFriends = Observable .fromIterable(MainApp.getDB().getAll(DBContact.TABLE, new DBContact(), null)) .compose(RxUtil.cacheAndShare()); } return mFriends; } 变量并创建一个新变量然后一切正常,但我更喜欢一种更有效的方法。我可以以某种方式从缓存的数据中删除一个项目吗?

修改

我的有效但丑陋的解决方案如下:

public static <T> ObservableTransformer<T, T> cacheAndShare()
{
    return new ObservableTransformer<T, T>()
    {
        @Override
        public ObservableSource<T> apply(Observable<T> observable)
        {
            return observable.cache().replay().refCount();
        }
    };
}

这真的是要走的路吗?

0 个答案:

没有答案