zoukankan      html  css  js  c++  java
  • 没错预加载就是这么简单

    之前项目中遇到图片加载问题,首先想到异步加载 ,接着想用什么框架,框架很多,我用的是volley,感觉挺方便的,废话不多说,记录一下自己的错误然后接着前行,用volley的时候虽然出现了效果,但是在出现默认图片之前还是出现几秒让人难以忍受的空白,不得不靠。

    上代码:

    /**

    在刷屏页 创建任务:

    private void getData(){

    ReadImgTask task = new ReadImgTask();
    task.execute();
    }

    接着:

    /**
    * 预加载跑马灯图片
    * @author kcw001
    */
    class ReadImgTask extends PreReadTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String... arg0) {

    List list = new ArrayList<String>();
    try {
    JSONObject obj = new JSONObject();
    obj.put("{}", null);//请求格式 {}  返回结果集
    String jsonString = PostCLientUtils.doHttpsPost(
    Information.Url,
    JsonStrUtils.JsonStr(obj));
    JSONObject demoJson;
    demoJson = new JSONObject(jsonString);
    JSONArray numberList = demoJson.getJSONArray("result");

    for (int i = 0; i < numberList.length(); i++) {
    String picture_url = numberList.getJSONObject(i)
    .getString("picture_url");
    JSONObject object = numberList.getJSONObject(i)
    .getJSONObject("picture");
    String __type = object.getString("__type");
    String id = object.getString("id");
    String name = object.getString("name");
    String url = object.getString("url");
    String objectId = numberList.getJSONObject(i)
    .getString("objectId");
    String createdAt = numberList.getJSONObject(i)
    .getString("createdAt");
    String updatedAt = numberList.getJSONObject(i)
    .getString("updatedAt");

    list.add(url);
    }

    Thread.sleep(200);//模拟网络延时
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Data.putData("url", list); //放数据

    return null;
    }

    ===============

    另外 Data 类 和ACache工具类一样好用:

    /**
    * 存取数据
    * @author kcw001
    */
    public class Data {

    private static AbstractMap<String, Object> mData = new ConcurrentHashMap<String, Object>();

    private Data() {

    }

    public static void putData(String key,Object obj) {
    mData.put(key, obj);
    }

    public static Object getData(String key) {
    return mData.get(key);
    }
    }

    ===============

    在你的 闪屏页面之后取数据

    Data.get("");读取操作,ok 走下一段路!

  • 相关阅读:
    Cocos2dx-Android屏幕适配方案
    Cocos2dx-Mac下的环境配置
    Cocos2dx-C++和Lua数据通讯
    Cocos2dx-Lua与C++混合使用
    安装宝塔面板
    nginx配置ssl安全证书
    在nginx上运行spring
    spring在服务器上的启动和关闭jar包
    idea常用插件
    maven打包war
  • 原文地址:https://www.cnblogs.com/yizuochengchi2012/p/4999255.html
Copyright © 2011-2022 走看看