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() {@Overridepublic void onSuccess(Response<String> response) {message.what = POST_SUCCESS;message.obj = response.body();token_pass(message.obj.toString());handler.sendMessage(message);}@Overridepublic void onError(Response<String> response) {super.onError(response);message.what = POST_FAILED;message.obj = POST_SUCCESS;handler.sendMessage(message);}@Overridepublic void onStart(Request<String, ? extends Request> request) {super.onStart(request);}});
}
2. 在需要用到缓存数据的界面
private void get_save_banner() { //下面的 UrlTools.TIKU_BANNER 就是 步骤1 内的 actCacheEntity<?> 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) 这两个属:
就这些,不懂的 可以私聊我