/**
* 预加载
*/
public class RxPreLoader<T> {
//能够缓存订阅之前的最新数据
private BehaviorSubject<T> mData;
private Disposable disposable;
public RxPreLoader(T defaultValue){
mData = BehaviorSubject.createDefault(defaultValue);
}
/**
* 发送事件
* @param object
*/
public void publish(T object){
mData.onNext(object);
}
/**
* 订阅事件
* @param onNext
* @return
*/
public Disposable subscribe(Consumer<T> onNext){
Disposable disposable = mData.subscribe(onNext);
return disposable;
}
/**
* 取消订阅
*/
public void dispose(){
if(disposable != null && !disposable.isDisposed()){
disposable.dispose();
disposable = null;
}
}
/**
* 获取缓存数据的Subject
* @return
*/
public BehaviorSubject<T> getCacheDataSubject() {
return mData;
}
/**
* 获取最近的数据
* @return
*/
public T getLastCacheData(){
return mData.getValue();
}
}
Rx系列<第七篇>:RxJava实现预加载
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。