【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.总结


浙公网安备 33010602011771号