【问题标题】:Async Task doInBackground not performed未执行异步任务 doInBackground
【发布时间】:2012-06-28 09:23:10
【问题描述】:

我有一系列 asyncTask 一个接一个地执行以从服务器下载 pdf。但有时当我最小化应用程序然后恢复它(在后台下载)时,下一个 asyncTask 很快就会执行当前正在运行的 asyncTask 卡在 preExcute 中。 doInBackground 没有被执行。请帮忙。

【问题讨论】:

  • 当您最小化应用程序并再次运行时取消 asyncTask ....

标签: android android-asynctask resume-download


【解决方案1】:

这是 AsyncTasks 上的一个已知问题。 AsyncTasks 的默认执行器是SERIAL_EXECUTOR。您可以在此执行程序的队列中拥有 5 个 AsyncTask。之后,它将停止创建新的Threads

如果你愿意这样做:

public void someMethod() {
     new MyAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}

它会在不同的执行程序上运行您的 AsyncTasks,该执行程序会汇集您的线程。它有 15 个限制。但最好的是,它并行运行线程,SERIAL_EXECUTOR 将它们放入队列中并一一执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多