【0152】AsyncTask异步加载

1.AsyncTask的基本认识

1.1 异步使用的场景

1.2 AsyncTask类

1.3 AsyncTask调用的时机

【运行结果】

 

【增加进度数据的返回】

2.AsyncTask的使用示例

2.1 网路数据转换为本地数据

【说明】加载本地图片,然后显示加载的进度;

 【创建AsyncTask类】

【实现网路数据转化为本地的图片数据】

2.2 UI加载实现

【说明】onPostExecute:运行在主线程,因此可以直接操作UI线程;

2.3 额外点击加载的布局的添加

3. AsyncTask模拟进度条

3.1 进度条显示

【登录的显示】

3.2【取消AsyncTask】

【现象】在第一次点击执行任务的时候,点击返回键;再次点击执行任务,则不会再次直接执行,而是等待上一个任务执行结束之后才会再次执行;

【原因】在AsyncTask中使用的是线程池,当前任务没有执行结束会在后台继续执行;直到当前任务执行结束之后才会再次执行;

【解决方式】保持Activity的生命周期和AsyncTask生命周期一致;

【说明】设置为true,只是标记,并非真正的取消掉了一个线程;需要在别的方法中一起配合;

【实质】本质上的此线程并没有结束,而是仍然在运行;

 

4.总结

 

posted @ 2018-05-15 10:52  OzTaking  阅读(176)  评论(0)    收藏  举报