*【异步加载】

原创 2016年08月30日 12:57:56

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

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

treegrid 异步加载

var nodeLoad = function (store, operation, options) { var node = operation.node; ...
  • lyflcear
  • lyflcear
  • 2014年07月17日 17:56
  • 1098

Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)

异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务。在同步加载游戏场景的时候通常会使用方法 Application.LoadLevel(“yourScene”)...
  • gghu1986
  • gghu1986
  • 2013年08月08日 11:43
  • 34075

winform简单的UI和数据异步加载

由于GridControl加载的数据量比较大,为了不出现假死的想象,需要先加载UI界面再加载数据 具体做法: private void TableListUserControl_Load ( obje...
  • u011871201
  • u011871201
  • 2016年12月31日 15:22
  • 1161

Android使用GridView异步加载(弱引用)网络图片(支持点击查看)Demo

  • 2017年12月12日 17:09
  • 20.03MB
  • 下载

图片异步加载

  • 2017年11月09日 18:01
  • 2KB
  • 下载

异步加载数据

  • 2014年04月04日 09:02
  • 24KB
  • 下载

asynhandle(异步加载)

  • 2012年10月25日 22:58
  • 3KB
  • 下载

自定义宏输出及网络图片异步加载

  • 2013年07月25日 18:00
  • 97KB
  • 下载

异步加载图标

  • 2013年07月03日 11:29
  • 1.21MB
  • 下载

android图片异步加载

  • 2014年09月25日 14:41
  • 1.28MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:*【异步加载】
举报原因:
原因补充:

(最多只允许输入30个字)