【问题标题】:AsyncTask run on one single thread in Android 2.3.3 (VERSION.SDK_INT = 10)AsyncTask 在 Android 2.3.3 (VERSION.SDK_INT = 10) 的单线程上运行
【发布时间】:2017-05-24 12:14:00
【问题描述】:

按照Android的文档

首次引入时,AsyncTask 是在单个后台线程上串行执行的。从 DONUT 开始,这被更改为允许多个任务并行运行的线程池。从 HONEYCOMB 开始,任务在单线程上执行,以避免并行执行导致的常见应用程序错误。

如果你真的想要并行执行,你可以使用 THREAD_POOL_EXECUTOR 调用 executeOnExecutor(java.util.concurrent.Executor, Object[])。

有没有办法在 Android 2.3.3 的单个线程上运行 AsyncTask ?我打算使用 executeOnExecutor 但它只支持版本 sdk > 11

【问题讨论】:

  • 好吧,您可以在第一次运行时手动阻止运行另一个任务。

标签: android multithreading android-asynctask


【解决方案1】:

按照此链接How do I cancel an AsyncTask running BitmapFactory.decodeFile() and clean-up 中的指南进行操作。我把同步到 doInBackground 方法,看到它的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多