Android 异步任务允许的最大时间限制

Android 异步任务允许的最大时间限制,android,concurrency,android-asynctask,Android,Concurrency,Android Asynctask,Android生态系统允许AsyncTask任务运行的最长时间是多少 我在采访中多次被问到这个问题,但我从未找到具体的答案。好吧,我在采访中要说的是,AsyncTask在API 30中被弃用了: 然后我会使用这个问题的一些答案: 最后,我想说一些关于Kotlin合作项目的替代方案: 至少从技术角度来看,没有固定的最长时间限制。AsyncTask可以无限时间运行 这可能会导致许多问题 如果通过调用execute()来执行AsyncTask,则它们将连续运行—也就是说,一个接一个,永远不会同时运

Android生态系统允许
AsyncTask
任务运行的最长时间是多少


我在采访中多次被问到这个问题,但我从未找到具体的答案。

好吧,我在采访中要说的是,AsyncTask在API 30中被弃用了:

然后我会使用这个问题的一些答案:

最后,我想说一些关于Kotlin合作项目的替代方案:


至少从技术角度来看,没有固定的最长时间限制。
AsyncTask
可以无限时间运行

这可能会导致许多问题

如果通过调用
execute()
来执行
AsyncTask
,则它们将连续运行—也就是说,一个接一个,永远不会同时运行多个。如果您使用
execute()
,并且您的任务运行时间过长,则在完成之前,您将阻止其他以这种方式运行的任务执行 如果您使用
executeOnExecutor(AsyncTask.THREAD\u POOL\u EXECUTOR)
执行它,效果会稍微好一点,不过它仍然会并行运行数量非常有限的任务(基于各种因素)

在这些情况下,可能会发生一些事情,比如一些缓慢的web请求(或者进入地铁隧道和互联网的速度变慢)可能会阻止应用程序中所有的
AsyncTask
s运行


出于这一原因和其他原因,建议但不强制执行,
AsyncTask
s不应用于相对快速的任务以外的任何任务,如快速web请求或数据库读取。

检查此链接我知道,但仍然,如果某个组件不推荐使用,并不意味着不应该对该组件有一些典型的了解。我想再次得到一个具体的答案。