实战 使用okgo 怎么在没网络时 ,显示上一次加载的数据

1.  首先 在自己的 请求内添加  cacheKey(),其中 act  接口名称

public void httpUtils(String act, HttpParams httpParams) {

    final Message message = new Message();
    OkGo.<String>post(UrlTools.BASE_URL + act).headers("token", UserData.getUserToken(context)).cacheKey(act).tag(context + "_" + POST_SUCCESS).params(httpParams).execute(new StringCallback() {
        @Override
        public void onSuccess(Response<String> response) {
            message.what = POST_SUCCESS;
            message.obj = response.body();
            token_pass(message.obj.toString());

            handler.sendMessage(message);

        }

        @Override
        public void onError(Response<String> response) {
            super.onError(response);
            message.what = POST_FAILED;
            message.obj = POST_SUCCESS;
            handler.sendMessage(message);


        }

        @Override
        public void onStart(Request<String, ? extends Request> request) {
            super.onStart(request);


        }
    });
}

 

2.  在需要用到缓存数据的界面 

private void get_save_banner() {
//下面的  UrlTools.TIKU_BANNER  就是  步骤1 内的 act
    CacheEntity<?> bannerdata = CacheManager.getInstance().get(UrlTools.TIKU_BANNER);
    if (!Utils.isEmpty(bannerdata + "")) {
// get_banner()方法 就是正常接收 网络数据的 方法
        get_banner(bannerdata.getData().toString());
    }
}

3.将get_save_banner()方法, 在 界面的 调用网络请求方法之前调用 

 

4. 如果界面有图片,那么图片加载框架  也有添加 缓存机制

我用的是 imageloder   ,设置全局属性的时候 设置如下:

public static final DisplayImageOptions OPTIONS_NORMAL = new DisplayImageOptions.Builder()
        .cacheOnDisk(true).cacheInMemory(true)
        .imageScaleType(ImageScaleType.EXACTLY)
        .showImageOnLoading(R.drawable.ig_holder)
        .bitmapConfig(Bitmap.Config.RGB_565)
        .considerExifParams(true)
        .delayBeforeLoading(300)
        .build();

其中主要的就是添加  .cacheOnDisk(true).cacheInMemory(true)  这两个属:

  就这些,不懂的 可以私聊我

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值