gpt4 book ai didi

Android - 执行异步任务的最佳方式

转载 作者:行者123 更新时间:2023-11-30 01:15:12 26 4
gpt4 key购买 nike

我有一个非常密集的任务,我解析存储在 Assets 中的大约 100 个 json 文件并从中创建一个树结构..然后我根据结果树更新 UI。l

目前,我正在使用 AsyncTask 来完成这项工作。

但是,我正在寻找更好、更高效、更干净的方法来做到这一点。我应该使用的任何库或任何其他内置功能?

最佳答案

我会在这里使用 IntentService。它已经提供了一个后台线程,一旦完成就会自行停止。如果之后需要更新 UI,可以使用 HandlerBroadcastReceiver

编辑

您仍然可以使用 AsyncTask,但仍然从 Service 启动它。 AsyncTask 只是 java 线程的包装器,它不是 Android 组件。您必须从某个上下文启动它,在本例中是 ActivityService

如果您从 Activity 启动它,那么您长时间运行的操作将取决于 UI,这在大多数情况下会导致内存泄漏。 Service 是一个独立于 UI 运行的后台组件。此外,Service 将提高您的应用程序的进程优先级,以便在系统内存不足时它不太可能被 Android 杀死。

如果您使用IntentService,您不再需要AsyncTask,它已经在后台线程上运行了。如果你想使用常规的 Service,你需要自己实现后台执行。例如,通过 Java 线程或异步任务。

关于Android - 执行异步任务的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37949509/

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