Android中的多线程及AsyncTask的引入

文章介绍了如何使用Java的AsyncTask类进行模拟图片下载的演示,以及如何在实际应用中下载图片,包括异步操作、延迟模拟和进度更新。作者还分享了个人经验,鼓励持续学习和提升技能作为IT工程师。
摘要由CSDN通过智能技术生成

(1)模拟图片下载的基础Demo


1.主要代码

public class DelayOperator {

//延时操作,用来模拟下载

public void delay()

{

try {

Thread.sleep(1000);

}catch (InterruptedException e){

e.printStackTrace();

}

}

}

public class MyAsyncTask extends AsyncTask<Integer,Integer,String>

{

private TextView textView;

private ProgressBar progressBar;

public MyAsyncTask(TextView textView,ProgressBar progressBar)

{

super();

this.textView = textView;

this.progressBar = progressBar;

}

//该方法不运行在UI线程中,主要用于异步操作,通过调用publishProgress()方法

//触发onProgressUpdate对UI进行操作

@Override

protected String doInBackground(Integer… params) {

DelayOperator dop = new DelayOperator();

int i ;

for (i = 10;i <= 100;i+=10)

{

//判断是否为取消状态

dop.delay();

publishProgress(i);

}

return i + params[0].intValue() + “”;

}

//该方法运行在UI线程中,可对UI控件进行设置

@Override

protected void onPreExecute() {

textView.setText(“开始执行异步线程~”);

}

//在doBackground方法中,每次调用publishProgress方法都会触发该方法

//运行在UI线程中,可对UI控件进行操作

@Override

protected void onProgressUpdate(Integer… values) {

int value = values[0];

progressBar.setProgress(value);

}

}

2.实现效果

无法加载

(2)进阶版从网络下载图片的实际应用


1.主要代码

public class ImageAsyncTask extends AsyncTask<String, Bitmap, Integer> {

private TextView textView;

private ImageView imageView;

public ImageAsyncTask(TextView textView,ImageView imageView)

{

super();

this.textView = textView;

this.imageView=imageView;

}

@Override

protected void onPreExecute() {

super.onPreExecute();

//页面提示

textView.setText(“下载中…”);

}

@Override

protected Integer doInBackground(String… params) {

//记录成功下载的图片个数

int downloadSuccess = 0;

try {

for (int i = 0; i < params.length; i++) {

//睡眠2秒,制造耗时操作效果

Thread.sleep(2000);

if(isCancelled()){

break;

}

//循环取出可变参数中图片地址

String url = params[i];

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力),由于篇幅有限,都放在了我的GitHub上,点击即可免费获取!

Androidndroid架构视频+BAT面试专题PDF+学习笔记

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

实费了很大力,这四个字就是我的建议!!

  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

加油,共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值