日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

android - 有數據要處理的時候如何使用rxJava進行異步處理數據

瀏覽:161日期:2024-03-01 13:32:19

問題描述

我需要實現下面這段代碼,但是應該是耗時太長放在主界面會卡,所以希望異步處理

JsonReader jsonReader = new JsonReader();cityObject = jsonReader.jsonObject();try { cityArray = cityObject.getJSONArray('city_info'); for (int i=0;i<cityArray.length();i++) {Gson gson = new Gson();JSONObject city = (JSONObject) cityArray.get(i);cityDataList.add(gson.fromJson(city.toString(), CityData.class)); }} catch (JSONException e) { e.printStackTrace();}provinceList = getProvinceList();cityMap = getCityMap();

public class JsonReader { public JSONObject jsonObject(){InputStream inputStream = getClass().getClassLoader().getResourceAsStream('assets/cityList.json');InputStreamReader streamReader = new InputStreamReader(inputStream);BufferedReader reader = new BufferedReader(streamReader);String line;StringBuilder stringBuilder = new StringBuilder();try { while ((line = reader.readLine()) != null) {stringBuilder.append(line); } reader.close(); reader.close(); inputStream.close();} catch (IOException e) { e.printStackTrace();}try { JSONObject cityJson = new JSONObject(stringBuilder.toString()); return cityJson;} catch (JSONException e) { e.printStackTrace();}return null; }}

private List<String> getProvinceList() {List<String> list = new ArrayList<>();for (int i = 0; i < cityDataList.size(); i++) { CityData cityData = cityDataList.get(i); boolean isProvince = false; for (int j = 0; j < list.size(); j++) {if (list.get(j).equals(cityData.getProv())) { isProvince = true; break;} } if (isProvince) continue; else list.add(cityData.getProv());}return list; } private HashMap<String, List<String>> getCityMap() {HashMap<String, List<String>> map = new HashMap<>();for (int i = 0; i < provinceList.size(); i++) { String prov = provinceList.get(i); List<String> list = new ArrayList<>(); for (int j = 0; j < cityDataList.size(); j++) {if (cityDataList.get(j).getProv().equals(prov)) list.add(cityDataList.get(j).getCity()); } map.put(prov, list);}return map; }

這幾個操作循環比較多,比較耗時,我想用rxjava處理,但是對observable的使用還是不太清楚,有人能介紹一下像我這樣observable怎么寫嗎?我想要改進的是用observable通過flatmap等這些操作符來返回provinceList和cityMap,并且把線程轉到后臺,在前臺接收到這兩個數據就好了

問題解答

回答1:

幫樓主寫了下示例代碼,像樓主這種需求,其實無須操作符進行變換的。

Observable.create(new Observable.OnSubscribe<Pair>() { @Override public void call(Subscriber<? super Pair> subscriber) {JsonReader jsonReader = new JsonReader();cityObject = jsonReader.jsonObject();try { cityArray = cityObject.getJSONArray('city_info'); for (int i=0;i<cityArray.length();i++) {Gson gson = new Gson();JSONObject city = (JSONObject) cityArray.get(i);cityDataList.add(gson.fromJson(city.toString(), CityData.class)); }} catch (JSONException e) { e.printStackTrace();}provinceList = getProvinceList();cityMap = getCityMap();Pair pair = new Pair(provinceList, cityMap); }}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Pair>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Pair pair) {//pair.first -> provinceList//pair.second -> cityMap }});回答2:

你需要的是cityDataList這個list吧?那么就可以使用Observable.create來新建一個Observable,把所有操作放在OnSubscribe對象中的call方法中,在最后數據準備完成后調用subscriber相應的onNext就行了。同時處理一下對應的onCompleted和onError

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲免费网址| 日韩和欧美的一区| 国产精品xxxav免费视频| 一区二区三区国产盗摄| 在线一区电影| 天堂网在线观看国产精品| 久久婷婷av| 日韩av有码| 亚洲欧洲美洲av| 欧美羞羞视频| 日本欧美不卡| 999国产精品永久免费视频app| 啪啪国产精品| 精品在线播放| 伊人成人网在线看| 久久亚洲欧洲| 91精品国产一区二区在线观看| 日韩成人一级| 欧美91在线| 精品国产一区二| 免费看av不卡| 欧洲激情综合| 午夜久久影院| 亚洲一区黄色| 欧美日韩99| 久久99免费视频| 国产精品xx| 五月综合激情| 日韩有吗在线观看| 欧美黄色一区二区| 成人自拍av| 国产精品视区| 青青在线精品| 国产在线观看www| 激情偷拍久久| 日韩一区二区三区高清在线观看| 日韩福利视频一区| 国产精品久久亚洲不卡| а√天堂8资源中文在线| 在线观看免费一区二区| 亚洲最新av| 精品国产午夜| 国产亚洲在线| 欧美激情 亚洲a∨综合| 在线日韩中文| 欧美日本三区| 欧美aa在线观看| 免费人成在线不卡| 九九九精品视频| 91久久视频| 国产精品巨作av| 欧美日韩国产欧| 国产美女亚洲精品7777| 国产在线一区不卡| 在线精品视频在线观看高清| 欧美视频久久| 免费精品国产| 国产精品色在线网站| 国产一区日韩欧美| 国产亚洲人成a在线v网站| 久久国产日韩| 久久国内精品自在自线400部| 欧美成人基地| 日本精品在线播放| 日韩精品一区二区三区免费观看| 日韩精品一区二区三区免费视频| 国产91欧美| 在线综合欧美| 国产精品超碰| 欧美午夜不卡| 国产伊人久久| 日本午夜精品一区二区三区电影| 日韩电影免费网站| 久久精品99国产精品日本| 午夜影院欧美| 丰满少妇一区| 日韩av一区二区三区| 国产真实久久| 久久99国产精品视频| 日日摸夜夜添夜夜添国产精品| 国产日韩电影| 国产日韩亚洲| 日韩天堂av| 免费在线欧美黄色| 午夜亚洲福利| 欧美日韩中文一区二区| 国产精品亚洲欧美| 日韩在线一二三区| 久久久久久久久久久妇女| 国产乱码精品| 中文无码久久精品| 亲子伦视频一区二区三区| 久久精品一区| 日本免费在线视频不卡一不卡二| 伊人久久成人| 欧美精品高清| 久久天堂影院| 在线观看视频免费一区二区三区| 蜜臀国产一区| 国产中文字幕一区二区三区| 国产日韩一区二区三区在线播放| 一区二区三区国产盗摄| 99国内精品| 激情久久久久久| 国产精品毛片久久| 麻豆久久一区二区| 欧美亚洲tv| 亚洲va久久| 在线亚洲自拍| 好看的亚洲午夜视频在线| 毛片在线网站| 精品午夜久久| 国产精品一区二区精品| 亚洲精品动态| 热久久国产精品| 久久国产影院| 欧美少妇精品| 亚洲午夜天堂| 日韩中文在线电影| 在线中文字幕播放| 久久久久久色| 日韩avvvv在线播放| 综合国产在线| 亚洲日本久久| 日韩美女精品| 青草综合视频| 欧美亚洲tv| 国产精品分类| 日韩激情中文字幕| 啪啪亚洲精品| 国产乱人伦精品一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 欧美国产先锋| 国产精品片aa在线观看| 国产精品流白浆在线观看| 国产精品久久久久久久久久久久久久久| 日本成人中文字幕| 亚洲一级大片| 欧美日韩黄网站| 你懂的网址国产 欧美| 久久99久久人婷婷精品综合| 精品五月天堂| 色吊丝一区二区| 欧美一级精品| 91久久在线| 亚洲资源网站| 欧美在线观看天堂一区二区三区| 欧美一区二区三区久久精品| 国产伦精品一区二区三区千人斩| 国产精品一线天粉嫩av| 久久只有精品| 久久久久久久久丰满| 亚洲成人不卡| 欧美日韩国产亚洲一区| 免费久久99精品国产| 日韩1区2区日韩1区2区| 国产一区调教| 影音先锋国产精品| 日韩欧美在线精品| 美女性感视频久久| 99精品视频精品精品视频| 免播放器亚洲| 国产日本久久| 高潮久久久久久久久久久久久久| 成人啊v在线| 蜜臀av亚洲一区中文字幕| 国产日韩免费| 福利在线一区| 美女精品在线| 国产精品大片| 欧洲激情综合| 日韩国产精品久久久| 天堂av在线| 亚洲免费专区| 你懂的国产精品永久在线| 欧美一级精品| 国产剧情一区| 亚洲精品va| 国产免费av一区二区三区| 日韩精品网站| 奇米色欧美一区二区三区| 日韩综合精品| 亚洲一级大片| 四季av一区二区凹凸精品| 亚洲一区二区三区高清| 毛片不卡一区二区| 国产亚洲亚洲| 高清不卡一区| 婷婷亚洲成人| 日韩一区二区三区免费| 亚洲精品少妇| 天堂av在线| 日本91福利区| 99久久99久久精品国产片果冰| 91嫩草精品| 1024精品一区二区三区| 国产日韩欧美一区二区三区在线观看| 伊伊综合在线| 国产欧美一区二区三区精品观看| 欧美 日韩 国产一区二区在线视频|