Android中的AsyncTask是如何执行的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的AsyncTask是如何执行的相关的知识,希望对你有一定的参考价值。

譬如我的类MyAsyncTask继承自AsyncTask,然后在doInBanckground方法中从网络中获取了一张图片,然后onPostExecute方法更新UI中的ImageView
在Activity的onCreate方法中,先创建MyAsyncTask对象,然后调用其execute方法
但是我看AsyncTask的源码,在AsyncTask的构造方法中,就已经调用了doInBackground方法

而在其execute方法中,仅仅调用了onPreExecute方法

不是说onPreExecute是在doInBackground之前调用的吗?这里是怎么会事儿啊

我没看源码,但看你的截图,构造方法里mWorker = new WorkRunnable是在创建线程实例,然后call()是需要实现的抽象方法,代码块中的部分是具体的实现,并不代表立刻就被调用。


就像你在Activity的onCreate方法中写

mButton.setOnClickListener(new OnClickListener()
        public void onClick(View v)
                
      
);


并不代表在Activity创建的时候,就要执行onClick里的代码吧。

参考技术A 你确定你看明白了调用的过程吗 参考技术B 先弄明白,怎么使用,还有这三个过程

以上是关于Android中的AsyncTask是如何执行的的主要内容,如果未能解决你的问题,请参考以下文章

AsyncTask-Android

Android AsyncTask分析

Android自助餐之AsyncTask

android asynctask 多个实例是一个线程池吗

如何在Android开发中用AsyncTask异步更新UI界面

android AsyncTask执行为啥这么慢