@Override public int call(Object result) { CxTabloid tabloidData = null; CxLog.e(TAG, result.toString()); try { tabloidData = new TabloidParse().parseTabloid(result); } catch (Exception e) { e.printStackTrace(); } if (tabloidData == null || tabloidData.getRc() == 408) { showResponseToast( CxApplication.getInstance().getString(R.string.cx_fa_net_response_code_null), 0); return -2; } // 请求成功 if (tabloidData.getRc() == 0) { // 将数据插入到库中 TabloidDao dao = new TabloidDao(CxTabloidActivity.this); dao.insertTabloidBatch(tabloidData.getDataList()); } else { if (TextUtils.isEmpty(tabloidData.getMsg())) { showResponseToast( CxApplication.getInstance().getString(R.string.cx_fa_net_response_code_fail), 0); } else { showResponseToast(tabloidData.getMsg(), 0); } } return 0; }
/** 从服务端获取小报数据 */ public void getTabloidDataFromServer() { CxTabloidApi tabloidApi = new CxTabloidApi(); TabloidDao dao = new TabloidDao(CxTabloidActivity.this); String[] arr = dao.getCategorieIdsAndTabloidIds(); String categorie_ids = arr[0]; String tabloid_ids = arr[1]; CxLog.e(TAG, "categorie_ids:" + categorie_ids + " tabloid_ids:" + tabloid_ids); tabloidApi.getCategoryList(getTabloidDataCaller, categorie_ids, tabloid_ids); }
private void init() { // 获取小报类型列表(先从本地获取,然后再从网络中获取。从网络中获取后,更新本地的数据,下次进入时生效) CxTabloidApi tabloidApi = new CxTabloidApi(); // 获取本地缓存的数据 TabloidDao dao = new TabloidDao(CxTabloidActivity.this); String version = dao.getVersion(); TabloidCateConfData pubConf = dao.getPubConf(); // 得到全局的配置,没有分类配置数据 List<TabloidCateConfObj> confList = dao.getCateConfList(0); // 分类的配置数据 if (pubConf != null && confList.size() > 0) { pubConf.setConfig(confList); // 将全局配置和分类配置合并 buildView(pubConf); } else { tabloidApi.getCategoryConfig(getCateConfCaller, version); } }
@Override public int call(Object result) { CxTabloidCateConf cateConf = null; CxLog.e(TAG, result.toString()); try { cateConf = new TabloidParse().parseCateConf(result); } catch (Exception e) { e.printStackTrace(); } if (cateConf == null || cateConf.getRc() == 408) { showResponseToast( CxApplication.getInstance().getString(R.string.cx_fa_net_response_code_null), 0); return -2; } // 请求成功 if (cateConf.getRc() == 0) { // 更新DB (跟库中的版本进行对比,只有版本更新了,才需要更新里面的配置数据) TabloidDao dao = new TabloidDao(CxTabloidActivity.this); String v2 = dao.getVersion(); CxLog.e(TAG, "v2" + v2); if (!cateConf.getData().getVersion().equals(v2)) { // 更新全局配置(先删除,再更新) dao.delPubConfig(); dao.insertPubConfig(cateConf.getData()); // 先删除所有的配置,然后再添加新获取的数据 dao.delAllCateConf(); dao.insertCateConfBatch(cateConf.getData().getConfig()); } if (v2.equals("0")) { // 如果缓存中没数据,需要把网络中返回的数据重绘到UI上 Message msg = new Message(); msg.obj = cateConf.getData(); new Handler(Looper.getMainLooper()) { public void handleMessage(Message msg) { buildView((TabloidCateConfData) msg.obj); // 重绘显示页面 }; }.sendMessage(msg); // 库中没有小报数据,则需要从服务器取一次(用户第一次进入会有这种情况) getTabloidDataFromServer(); } } else { if (TextUtils.isEmpty(cateConf.getMsg())) { showResponseToast( CxApplication.getInstance().getString(R.string.cx_fa_net_response_code_fail), 0); } else { showResponseToast(cateConf.getMsg(), 0); } } return 0; }