gpt4 book ai didi

android - 运行并行 AsyncTask

转载 作者:IT老高 更新时间:2023-10-28 22:15:42 28 4
gpt4 key购买 nike

我的应用程序中有一个 SplashActivity,它在我启动应用程序时使用 AsyncTask 执行一些操作。

我还创建了另一个从服务器下载数据的 AsyncTask。现在,在我关闭应用程序后,AsyncTask 仍在下载数据。

但是当我再次启动我的应用程序时,我的 SplashActivity 的 AsyncTask 不会执行其后台(doInBackground 函数),直到我的下载器 AsyncTask 完成,并且我的应用程序被挂起。

所以我的问题是我们不能并行运行两个 AsyncTask 吗?两个 AsyncTask 都是不同的并且做自己的事情。有什么办法吗。

最佳答案

Honeycomb 版本中的 AsyncTask 发生了变化。旧版本有一个 10 个线程的线程池,因此您可以并行运行 10 个任务。但是对于 Honeycomb 及更高版本,默认是串行执行器,它会一个接一个地执行任务。但是你可以传递一个 ThreadPoolExecutor 来执行:

   if (Build.VERSION.SDK_INT >= 11) {
//--post GB use serial executor by default --
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
//--GB uses ThreadPoolExecutor by default--
task.execute();
}

关于android - 运行并行 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910508/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com