没错预加载就是这么简单
2015-11-26 22:32
351 查看
之前项目中遇到图片加载问题,首先想到异步加载 ,接着想用什么框架,框架很多,我用的是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 走下一段路!
上代码:
/**
在刷屏页 创建任务:
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 走下一段路!
相关文章推荐
- Mac Maven java_home错误
- 添加磁盘存储OCR数据
- Java内功提升之类与对象
- 求二进制数中1的个数
- arm上打开摄像头
- 快速排序(二维数组)
- intellij idea 快捷键总结
- C++ lambda algorithm
- Qt 将excel表添加到另一个表后面
- Codeforces 484C Strange Sorting
- 关于tableview顶部留白问题
- Textview解决换行混乱问题
- Nodejs开发之Command Line Interface 命令行接口
- 南大软院二十一天成神计划
- 基础算法 快速排序
- dateFormate的一些用法
- 机器学习实战-边学边读python代码(4)
- 线搜索
- spring中多例、BeanFactoryAware、ApplicationContextAware、InitializingBean接口
- 八大排序算法的Java实现