异步任务AsyncTask

1.异步任务:使用子线程来执行耗时操作,然后再通过回调将结果返回给主线程

2.为什么用异步任务:
2.1)Android中使用线程的规则
a.主线程不能被阻塞,不能再主线程中执行耗时操作(不能超过5秒)
b.子线程不能访问UI控件
2.2)通过Handler线程通信机制,将子线程的数据传给主线程,在Android中已实现这种线程通信机制的类是AsyncTask,在AsyncTask类中通过接口回调,实现子线程与主线程之间的通信。

3.如何使用AsyncTask
3.1 创建类,并继承AsyncTask,同时声明三个泛型(Params,Progress,Result)
3.2 重写核心的两个方法:
Result doInBackground(Params…param);–>子线程执行的方法
void onPostExecute(Result result);–>主线程执行的方法
3.3 在子线程中执行方法内实现耗时操作,并将结果返回
3.4 在主线程中执行的方法内 将结果显示到UI上
3.5 在主线程中创建自定义的任务对象,并执行对象的execute()方法,启动任务

/**
 * 自定义异步任务
 * 三个泛型:
 *  1.第一个泛型:Params 启动任务执行的输入参数,比如HTTP请求的URL。
 *  2.第二个泛型:Progress 后台任务执行的百分比。
 *  3.第三个泛型:Result 后台执行任务最终返回的结果,比如String。
 *
 */
public class AsyncTaskStudy extends AsyncTask<String, Void, byte[]>{

    @Override
    protected byte[] doInBackground(String... params) {
        // TODO 在子线程中执行的方法--完成指定的耗时任务
        return null;
    }

    @Override
    protected void onPostExecute(byte[] result) {
        // TODO 在主线程中执行--方法的参数是子线程完成的结果(就是doInBackground完成后调用onPostExecute)
        super.onPostExecute(result);
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值