午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

android - rxjava 條件判斷

瀏覽:188日期: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
相關文章:
主站蜘蛛池模板: 国产乱人伦精品一区二区 | 色资源av| 手机看片国产精品 | 国产成年人在线观看 | 日本视频久久 | 国产精品毛片视频 | 午夜肉体高潮免费毛片 | 免费看av在线 | 国产高清视频在线播放 | 精品久久久久久久久久久久久 | 中文在线字幕观看 | 色婷婷狠狠| 黄页网站在线免费观看 | 成人深夜视频 | 在线观看中文字幕 | a在线视频| 精品中文字幕在线观看 | 日韩色爱| 精品一区二区三区免费 | 91精品国产成人观看 | 国产一区 | 欧美日韩高清一区二区 | 1024久久 | 1区2区视频 | 日韩免费av在线 | 国产黄网| 国产视频一二三区 | 欧美成人三级在线观看 | 中文字幕观看在线 | 精品一区二区三区在线观看视频 | 中文字幕在线天堂 | 国产网站黄色 | 黄色资源网站 | 色久视频 | 国产伦精品一区二区三区照片 | 1区2区3区视频| 日韩一区二区在线播放 | 精品久久久久久久久久久国产字幕 | 欧美影视一区 | 欧美xxxxxx片免费播放软件 | 午夜一级免费 |