美文网首页
AsyncTask相关

AsyncTask相关

作者: 聪聪的豆芽 | 来源:发表于2016-07-25 16:29 被阅读14次

参考:

http://blog.csdn.net/lmj623565791/article/details/38614699
http://blog.csdn.net/singwhatiwanna/article/details/9272195

原理:

666

18行:设置当前AsyncTask的状态为RUNNING,上面的switch也可以看出,每个异步任务在完成前只能执行一次。
20行:执行了onPreExecute(),当前依然在UI线程,所以我们可以在其中做一些准备工作。
22行:将我们传入的参数赋值给了mWorker.mParams ,mWorker为一个Callable的子类,且在内部的call()方法中,调用了doInBackground(mParams),然后得到的返回值作为postResult的参数进行执行;postResult中通过sHandler发送消息,最终sHandler的handleMessage中完成onPostExecute的调用。
23行:exec.execute(mFuture),mFuture为真正的执行任务的单元,将mWorker进行封装,然后由sDefaultExecutor交给线程池进行执行。

对比Handler+Thread

1、Handler+Thread

麻烦之处在于UI的更新牵涉较多,单个异步后台显得代码过多,而且频繁的new thread也不好。但是多个后台比较清晰,可控性好。

2、AsyncTask

比较轻量级,单个后台可用,系统封装好的UI更新,但是不可太耗时(最多几秒)。
但是由于版本的问题,1.6之前,3.0以后是队列形式,中间版本是并发(最大支持128的并发,10个任务等待,即138个任务,超过则异常),但是也可强制开启多线程执行executeOnExecutor()

相关文章

  • AsyncTask相关

    参考: http://blog.csdn.net/lmj623565791/article/details/386...

  • android_AsyncTask的源码解析

    AsyncTask的相关结论 下面是AsyncTask的相关结论,相关结论都会在下面的源码分析中一一印证。 onP...

  • AsyncTask源码解析

    参考资料 鸿洋版AsyncTask郭霖版AsyncTask线程池Android开发艺术探索Android源码 相关...

  • AsyncTask使用篇

    AsyncTask的使用流程 创建一个类继承AsyncTask类,并实现相关方法 定义一个接口类,来回调数据 在活...

  • (三)改进篇:AsyncTask加强版

    一、前言 前文链接:深度解读AsyncTask 上一篇文章我们介绍了AsyncTask的相关知识点,并就其存在的问...

  • 浅谈Android AsyncTask

    今天在写代码时,再一次碰见AsyncTask,于是决定总结一下AsyncTask的相关知识点 Android 1....

  • 笔记:Android线程和线程池

    Android线程和线程池 Android中的线程操作相关的类有 AsyncTask IntentService ...

  • AsyncTask相关面试题

    什么是AsyncTask? AsyncTask(异步任务类),比Handler更轻量,更适合简单的异步操作内部实现...

  • Android面试相关—AsyncTask机制

    Asynctask和handler一样,也是Android中异步消息的处理机制,AsyncTask机制底层封装了线...

  • AsyncTask原理及相关原则

    1、AsyncTask类的四个抽象方法 2、AsyncTask的执行流程 当我们构造一个AsyncTask的子类,...

网友评论

      本文标题:AsyncTask相关

      本文链接:https://www.haomeiwen.com/subject/tiggjttx.html