gpt4 book ai didi

android - 如果我在 onCreate 期间启动 AsyncTask,它什么时候开始执行?

转载 作者:太空狗 更新时间:2023-10-29 14:26:54 26 4
gpt4 key购买 nike

我想确保我不会减慢我的应用程序的启动时间并且需要启动一个与用户输入无关的后台任务——例如,填充缓存。

如果我从我的onCreate 方法启动一个AsyncTaskdoInBackground 方法何时真正开始执行? (假设单核设备)

Android 是否可以在 onCreate/onResume 完成之前安排它,或者它是否足够聪明,可以识别后台线程在 UI 线程完全完成之前不应该运行?

最佳答案

如果您查看 AsyncTask source code你会看到它只是使用 ThreadPoolExecutor 或串行执行器来运行任务。默认内部行为取决于 Android 版本(来自 AsyncTask 文档):

When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting with HONEYCOMB, tasks are executed on a single thread to avoid common application errors caused by parallel execution.

但是无论如何,doInBackground 的执行与Activity 生命周期无关,因此AsyncTask 几乎可以在任何时候执行。这仅取决于您已经启动了多少任务,取决于 AsyncTask 使用的默认 Executor 和线程调度程序。

关于android - 如果我在 onCreate 期间启动 AsyncTask,它什么时候开始执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11494852/

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