RxJava<第八篇>:RxJava实现预加载
2019-03-13 本文已影响1人
NoBugException
/**
* 预加载
*/
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();
}
}