安卓中缓存的工具类
来源:互联网 发布:淘宝网长款羽绒服 编辑:程序博客网 时间:2024/05/19 09:48
public abstract class BaseData { public void getData(String path) { String data = getDataFromLocal(path); if (TextUtils.isEmpty(data)) { //如果本地没有数据,则请求网络 getDataFromNet(path); } else { //成功从本地获取到数据 setResultData(data); } } /** * setResultData:得到获取的数据 * setFailData : 数据请求失败 * @param data */ protected abstract void setResultData(String data); protected abstract void setFailData(String error_type); /** * 网络请求数据 * @param path */ private void getDataFromNet(final String path) { RequestParams requestParams = new RequestParams(path); x.http().get(requestParams, new Callback.CommonCallback<String>() { @Override public void onSuccess(final String s) { setResultData(s);//将数据作返回 CommonUtils.executeRunnalbe(new Runnable() { @Override public void run() { saveDataToLocal(path, s);//将数据存入本地 } }); } @Override public void onError(Throwable throwable, boolean b) { setFailData("网络请求错误"); } @Override public void onCancelled(CancelledException e) { setFailData("网络请求取消"); } @Override public void onFinished() { } }); } /** * 获取本地数据 * * @param path * @return */ private String getDataFromLocal(String path) { BufferedReader bufferedReader = null; try { File cacheDir = CommonUtils.getContext().getCacheDir(); File file = new File(cacheDir, Md5Encoder.encode(path)); bufferedReader = new BufferedReader(new FileReader(file.getAbsolutePath())); StringBuilder stringBuilder = new StringBuilder(); String line = null; while ((line = bufferedReader.readLine()) != null) { stringBuilder.append(line); } return stringBuilder.toString(); } catch (Exception e) { e.printStackTrace(); } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } /** * 将数据写入本地 * * @param path * @param data */ private void saveDataToLocal(String path, String data) { BufferedWriter bufferedWriter = null; try { File cacheDir = CommonUtils.getContext().getCacheDir(); File file = new File(cacheDir, Md5Encoder.encode(path)); bufferedWriter = new BufferedWriter(new FileWriter(file.getAbsolutePath())); bufferedWriter.write(data); bufferedWriter.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (bufferedWriter != null) { try { bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
2 0
- 安卓中缓存的工具类
- 图片缓存的工具类
- 清除缓存的工具类
- 一个bitmap缓存的工具类
- 清除缓存和数据库的工具类
- LruCache (强缓存)的自定义工具类
- 15.缓存工具类ACache的使用
- 图片加载的缓存工具类
- 基于memcache的远程缓存工具类
- 工具类 - 缓存
- ehcache 缓存工具类
- android缓存工具类
- 图片缓存工具类
- 本地缓存工具类
- 缓存工具类
- Android缓存工具类
- 缓存工具类封装
- android 缓存工具类
- SMS格式介绍(三)
- 新浪面试题
- 带你了解HTTPS和HTTP的区别,数据安全时代的到来!
- spring mvc 异步请求
- Django中URL参数设置
- 安卓中缓存的工具类
- thinkphp关于模板日期的写法
- Android开发-百度地图API_v4.1.1-AndroidStudio(六)显示检索结果&定位&显示我的位置
- 王垠 --清华梦的粉粹
- js的with语句使用方法
- 动态设定报表的数据集–宏设定
- spring mvc 请求转发和重定向
- android 获取屏幕宽高、分辨率
- DIR和dirent 用来获取某文件夹目录内容的结构体