*【异步加载】

一、异步加载:就是用异步的方式去加载数据

二、使用异步加载的原因
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里面,这样就完成了整个数据的读取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值