国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

android - rxjava 條件判斷

瀏覽:114日期:2024-02-28 14:49:24

問題描述

我想實現這樣一個功能,用戶點擊獲取數據庫數據,若數據庫有這個數據,則直接顯示本地的,若數據庫沒有這個數據,就從服務器請求再顯示出來。請問一下用rxjava要怎么寫呢?

問題解答

回答1:

1.先把功能函數寫出來.

private static Object loadFromCache(String key) { //....本地緩存加載,如果加載失敗返回 null } private static Object loadFromServer(String key) { //....通過網絡加載,返回數據 Object obj = .... saveToCache(key, obj);//保存到本地緩存 return obj; }

2.將阻塞方法轉為RxJava的寫法

private static Observable<Object> rxLoadFromCache(String key) {return Observable.fromCallable(() -> loadFromCache(key)); } private static Observable<Object> rxLoadFromServer(String key) {return Observable.fromCallable(() -> loadFromServer(key)); }

3.合并到一起

public static Observable<Object> rxLoad(String key) {return Observable.concat(rxLoadFromCache(key),rxLoadFromServer(key)).filter(obj -> obj != null) .take(1); }

4.調用最后的方法

rxLoad(key) .subscribeOn(Schedulers.io()) .subscribe(obj->{ System.out.println(obj); });回答2:

Observable.concat(Observable.just(null), Observable.just(1)).filter(integer -> integer != null).take(1).subscribe(integer -> { //TODO});回答3:

Observable.if( () -> { return hasCache; }, Observable.just(cache), Observable.just(database),);

標簽: java
相關文章:
主站蜘蛛池模板: 特级a欧美做爰片毛片 | 窝窝午夜看片七次郎青草视频 | 男女晚上爱爱的视频在线观看 | 高清不卡一区二区三区 | 久久免费视频精品 | 综合在线播放 | 欧美中文字幕一区二区三区 | a级国产乱理伦片在线观看99 | 全部aⅴ极品视觉盛宴精品 全部免费a级毛片 | 2021最新国产精品一区 | 毛片在线高清免费观看 | 成年人黄色片 | 国产精品久久久久影视不卡 | 一本一本久久a久久精品综合麻豆 | 美女网站在线 | 清纯偷拍精品视频在线观看 | 国产精品亚洲第五区在线 | 国产美女作爱视频 | 国产精品秒播无毒不卡 | 中国国产一级毛片视频 | 免费一级毛片在线播放放视频 | 女人精aaaa片一级毛片女女 | 欧美黑大粗硬毛片视频 | baby在线观看免费观看 | 亚洲精品福利一区二区三区 | 三级毛片免费观看 | 国产成人精品曰本亚洲77美色 | 国产精品99精品久久免费 | 91看片淫黄大片欧美看国产片 | 色久激情| 综合中文字幕 | 美国全免费特一级毛片 | 中国一级淫片aaa毛片毛片 | 一区二区三区日本视频 | 精品一区二区三区在线成人 | 国产不卡精品一区二区三区 | 成人免费毛片观看 | 久草视频在线免费 | 免费看欧美成人性色生活片 | 京野结衣免费一区二区 | 久久精品视频网站 |