AsyncTask delay延迟执行 或者顺序执行 问题

惯用AsyncTask的朋友可能会发现AsyncTask的坑:

Android executes AsyncTask tasks before Android 1.6 and again as of Android 3.0 in sequence by default.

即:Android从3.0开始,AsyncTask为顺序执行方式。这种顺序方式指的是,所有的使用AsyncTask的类均会在应用中排一个序,按顺序执行!

这就导致有时候发现AsyncTask迟迟得不到执行被莫名其妙得delay了,是因为其他的AsyncTask还没执行完!

是不是很坑爹?

解决方式:

1、换用Thread+handler或者runonuithread的方式。

2、使用AsyncTask中的

You can tell Android to run it in parallel with the usage of the executeOnExecutor() method, specifyingAsyncTask.THREAD_POOL_EXECUTOR as first parameter.

样例:

// ImageLoader extends AsyncTask
ImageLoader imageLoader = new ImageLoader(imageView);

// Execute in parallel
imageLoader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "http://url.com/image.png"); 


参考:

http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

http://stackoverflow.com/questions/4068984/running-multiple-asynctasks-at-the-same-time-not-possible



原文地址:https://www.cnblogs.com/dyllove98/p/3201258.html