AsyncTask 原理解析

AsyncTask简介

AsyncTask是android提供的轻量级的异步类。继承AsyncTask实现异步操作,执行的结果给UI主线程。AsyncTask的执行方法有两种execute和executeOnExecutor。

AsyncTask<Object, String, String> task = new AsyncTask<Object, String, String>() {
            @Override
            protected String doInBackground(Object... object) {
                return "";
            }
            
            @Override
            protected void onPostExecute(String s) {
            }

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }

            @Override
            protected void onProgressUpdate(String... values) {
                super.onProgressUpdate(values);
            }

            @Override
            protected void onCancelled(String s) {
                super.onCancelled(s);
            }

            @Override
            protected void onCancelled() {
                super.onCancelled();
            }
        };
        //同步线程池,一次只开启一个线程
        task.execute();
       //异步线程池,一次执行多个
       // task.executeOnExecutor();

doInBackground(Object… object):执行任务中的耗时操作,返回线程任务执行的结果
onPreExecute(String s):接收线程任务执行结果、将执行结果显示到UI组件
onPreExecute():接收线程任务执行结果、将执行结果显示到UI组件
onProgressUpdate(String… values):主线程 显示线程任务执行的进度
onCancelled(String s):将异步任务设置为:取消状态
onCancelled():将异步任务设置为:取消状态

AsyncTask 有两个线程池和一个 Handler(IntentHandler)组成,其中线程池 SerialExecutor 用于任务的排队,而线程池 THREAD_POOL_EXECUTOR 用于真正的执行任务,InternalHandler 用于将执行环境从线程池切换到主线程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值