下面列出了怎么用io.reactivex.subscribers.ResourceSubscriber的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* 获取收藏的所有番剧信息并显示出来
*/
private void getScheduleCollections() {
ScheduleDAO dao = new ScheduleDAO(
getMAppComponent()
.repositoryManager()
.obtainRealmConfig(SystemConstant.DB_NAME)
);
mDisposable = dao.getScheduleCollectCaches()
.compose(RxUtil.<List<ScheduleCache>>rxSchedulerHelper())
.subscribeWith(new ResourceSubscriber<List<ScheduleCache>>() {
@Override
public void onNext(List<ScheduleCache> scheduleCaches) {
mAdapter.setList(scheduleCaches);
if (scheduleCaches.size() > 0) {
showPageContent();
} else {
showPageEmpty();
}
}
@Override
public void onError(Throwable t) {
showError(R.string.msg_error_data_null);
showPageError();
}
@Override
public void onComplete() {
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ResourceSubscriber<Long> resourceSubscriber = new ResourceSubscriber<Long>() {
@Override
public void onComplete() {
// TODO Auto-generated method stub
System.out.println("Its Done!!!");
dispose();
}
@Override
public void onError(Throwable throwable) {
// TODO Auto-generated method stub
throwable.printStackTrace();
dispose();
}
@Override
public void onNext(Long value_long) {
// TODO Auto-generated method stub
if(value_long==7)
dispose();
System.out.println("value :-"+value_long);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
request(Long.MAX_VALUE);
}
};
Flowable.rangeLong(5, 4).subscribe(resourceSubscriber);
resourceSubscriber.dispose();
}
public static void main(String[] args) {
Observable<Beer> beerData = BeerServer.getData(); // No streaming just yet
ResourceSubscriber<Beer> beerSubscriber = new ResourceSubscriber<Beer>() {
@Override
public void onNext(Beer beer) {
System.out.println("Got "+ beer);
}
@Override
public void onError(Throwable throwable) {
System.err.println("In Observer.onError(): " + throwable.getMessage());
}
@Override
public void onComplete() {
System.out.println("*** The stream is over ***");
}
};
// Converting an Observable to Flowable
beerData
.toFlowable(BackpressureStrategy.BUFFER)
.subscribe(beerSubscriber); // Streaming starts here
// If the subscriber is less than 21 year old, cancel subscription
beerSubscriber.dispose();
}
/**
* 查询该番剧的缓存信息
*
* @param isManualClick 是否主动点击
*/
public void getCurrentScheduleCache(final RxPermissions rxPermissions,
final boolean isManualClick) {
//如果播放记录还没加载成功,则先加载
if (!TextUtils.isEmpty(curScheduleCache.getScheduleUrl()) && isManualClick) {
checkPermission2ScheduleVideo(rxPermissions,
getNextScheduleUrl(currentScheduleDetail, curScheduleCache.getLastWatchPos()));
} else {
addSubscribe(
mModel.getScheduleCacheByUrl(currentScheduleUrl)
.compose(RxUtil.<ScheduleCache>rxSchedulerHelper())
.subscribeWith(new ResourceSubscriber<ScheduleCache>() {
@Override
public void onNext(ScheduleCache scheduleCache) {
curScheduleCache.setCollect(scheduleCache.isCollect());
curScheduleCache.setLastWatchPos(scheduleCache.getLastWatchPos());
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
mView.showError(R.string.msg_error_unknown);
}
@Override
public void onComplete() {
loadCache = true;
if (!TextUtils.isEmpty(curScheduleCache.getScheduleUrl())) {
mView.showScheduleCacheStatus(curScheduleCache);
}
//手动点击,则在加载完记录后跳转到视频播放
if (isManualClick) {
checkPermission2ScheduleVideo(
rxPermissions,
getNextScheduleUrl(currentScheduleDetail,
curScheduleCache.getLastWatchPos()));
}
}
})
);
}
}