@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;
        }