资讯_AsyncTask简介

1.认识AsyncTask
AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。AsyncTask直接继承于Object类。

AsyncTask定义了三种泛型类型Params,Progress和Result。
Params启动任务执行的输入参数,比如HTTP请求的URL。
Progress后台任务执行的百分比
Result后台执行任务最终返回的结果,比如String
必须重写两个方法:
doInBackground(Params…)后台执行,比较耗时的操作都可以放这里。
注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要任务,通常需要较长的时间。
在执行的过程中可以调用publicProgress(Progess…)来更新任务的进度。
onPostExecute(Result)相当于Handler处理UI的方式,在这里可以使用在doInBackground得到的结果处理UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回。
不必须重写以下三个方法:
onProgressUpdate(Params…)可以使用进度条添加用户体验度。此方法在主线程执行,用于显示任务执行的进度。
onPreExecute()这里是最终用户调用Execute的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
onCancelled()用户调用时,要做的操作
AsyncTask使用有一些限制,需要注意:
AsyncTask类必须在UI线程中加载。在Android4.1之后由系统自动完成。
AsyncTask实例必须在UI线程中创建。
execute(Params…)方法必须在UI线程中调用。
不要手动调用提供的四个回调方法。
每个AsyncTask实例只能执行一次
2.了解AsyncTask的原理
在这里插入图片描述
3.掌握AsyncTask的使用场景
在这里插入图片描述
4.掌握AsyncTask的常用方法
doInBackground(Params…)后台执行,比较耗时的操作都可以放这里。
注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要任务,通常需要较长的时间。
在执行的过程中可以调用publicProgress(Progess…)来更新任务的进度。
onPostExecute(Result)相当于Handler处理UI的方式,在这里可以使用在doInBackground得到的结果处理UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回。
5.掌握AsyncTask的执行流程(分析)
在这里插入图片描述
1.AsyncTask的基本使用

//第一个泛型 代表你要给子线程传的东西
//第二个泛型 代表任务执行的进度  用Integer
//第三个泛型 代表解析完成后子线程返回的值,以及主线程接受的值
//第四:继承AsyncTask,然后写三个泛型,< String,Integer,String>
public class MyAsyncTask extends AsyncTask<String,Integer,String> {

    @Override
    protected String doInBackground(String... strings) {
        //代表子线程
        //利用子线程请求数据
        return Http.requestHttpUrl(strings[0]);
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        //主线程
        //调用
        callBackS.getData(s);
    }
    //创建接口
    public interface CallBackS{
        //抽象方法
        void getData(String str);
    }

2.熟悉AsyncTask的优缺点
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值