Android异步----重新认识Android(6)

本文详细介绍了Android中AsyncTask的使用方法及注意事项,包括如何定义异步任务类、重写关键方法等,并提供了具体的应用场景示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android线程使用规定:
1、子线程不能操作UI组件(UI组件的方法都是不同步的)(注意:如果子线程在UI线程初始化的时候就执行完成,那么就不会引发异常)
2、Android4.0之后规定不能再UI线程中进行网络数据交互并且耗时操作应该在子线程中完成

AsyncTask异步任务类:
1、抽象泛型类--
在使用的时候必须指明具体的类型AsyncTask<Params,Progress,Result>
泛型说明:
Params :第一个泛型,一般是请求的URL或String
Progress: 第二个,更新进度,常用类型是Integer
Result :第三个,下载线程执行完后返回的结果,常用Bitmap,byte[],String

使用步骤:
1、自定义异步任务类并指明泛型
2、重写方法
Result doInBackground(Params... params) 后台执行的任务
onPostExecute(Result result) 任务完成,UI主线程执行
3、有选择的重写以下方法
onPreExecute() 后台任务开始之前的准备工作,UI主线程执行
onProgressUpdate(Progress... values) 当前执行的进度,UI主线程执行
onCancelled(Result result) 取消任务时,任务已完成的情况
onCancelled() 取消任务,任务正在执行的情况
4、在UI线程中创建自定义异步任务类对象,并execute执行

异步任务方法说明:
1.onPreExecute() 运行在UI线程中在AsyncTask执行前执行的准备方法
2.doInBackground() 运行在工作线程中进行耗时操作的方法
参数的类型与AsyncTask泛型的第一个参数类型一致 可变参数
返回值与AsyncTask泛型的第三个参数类型一致 返回工作线程耗时操作的结果
publishProgress(progress);//通知主线程修改当前进度
3.onProgressUpdate() 运行在主线程中用来更新进度的方法
只要doInBackground()中调用了publishProgress(progress);就立即执行该方法
该方法的参数与AsyncTask中泛型的第二个参数类型一致 可变参数
4.onPostExecute() 运行在主线程中用来将耗时操作的结果显示到ui界面中
参数是与AsyncTask的泛型的第三个参数类型一致

1、获取JSON格式的字符串显示在TextView中
2、将对应的字符串解析,将解析结果通过适配器设置给Spinner

3、当前页面增加一个按钮用于跳转到另外页面(跳转的时候要求取消异步任务)
4、另外页面异步任务加载图片


1、使用异步任务加载图片
2、使用异步任务加载并解析JSON
3、使用异步任务加载并解析XML数据











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值