*【异步加载】
来源:互联网 发布:linux ps命令中括号 编辑:程序博客网 时间:2024/05/27 14:14
一、异步加载:就是用异步的方式去加载数据
二、使用异步加载的原因
1.android是单线程模型
2.耗时操作都必须放在单独的线程中去做,而不能去阻塞UI线程
三、异步加载最常用的两种方式
1.多线程\线程池
2.AsyncTask(底层也是基于线程池来实现的)
四、AsyncTask定义了三种泛型类型 Params,Progress和Result
Params 启动任务执行的输入参数,比如HTTP请求的URL。
Progress 后台任务执行的百分比。
Result 后台执行任务最终返回的结果,比如String。
五、利用异步加载来实现json格式的获取:
首先定义异步加载类来获取json数据:
jsonString数据的获取需要用到InputStream
构造ReadStream(InputStream is )得到String 数据 传给jsonString :
1、InputStremReader 读取 InputStream
2、转为BufferedStream 便于修改
3、逐行读取数据line = br.readline()
只要 line !=null –>result +=line
4、return result
获取到的json数据封装成Bean格式之后再传给Adapter(下一节)
一、如何通过Url获取网络反馈的Json字符串结果:
1、重写doInBackground(Params…) 获取请求的网址,调用自定义方法getJson(String url);
2、自定义方法getJson中定义URL,获取inputStream流
3、自定义方法readStream(InputStream is),将inputStream流中的字节流拼装成字符串;
4、自定义方法getJson调用readeStream()方法,并将InputStream流作为参数传递。这样既可获得json串结果。
通过InputStream读取一个网络信息。
1.InputStream字节流,通过InputStreamReader(-,”utf-8”)指定其格式将字节流转化为字符流。
2.再通过BufferedReader将这样一个字符流以Buffer的形式读取出来,最终拼接到result里面,这样就完成了整个数据的读取
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- *【异步加载】
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步缓存,异步加载
- 页面同步加载&&异步加载
- 同一进程中的线程究竟共享哪些资源
- wsdl文档概述
- Struts学习总结(三)---使用Struts实现一个模拟前后台的注册功能实现。
- 第一章——导言(1)
- 第一个web service
- *【异步加载】
- UNP-基本TCP编程-3 (tcpdump)
- Io 异常: Got minus one from a read call
- sp、dp、dip、pt、px等单位的区别?【重点】
- cxf无法处理类型解决方法
- 关系模型
- PAT 1037Find Coins (25)(dp子序列)
- LeetCode 209 Minimum Size Subarray Sum
- 给自己一个新起点