gpt4 book ai didi

android - 来自非 ui 线程的异步任务

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:24 25 4
gpt4 key购买 nike

我们必须从 UI 线程启动和执行 asyctask 吗?如果我使用 asynctask 从非 ui 线程访问 web 服务(长时间运行)是否正确?抱歉,如果我的查询有误。

在我的应用程序中,我必须运行大约 10 个网络服务,并且必须在 ui 上显示结果。我很困惑哪种方法是好的 asynctask、intentservice 或为每个网络服务调用创建线程并使其并行运行。

最佳答案

要使 AsyncTask 正常工作,必须遵循一些线程规则:

  1. AsyncTask 类必须在 UI 线程上加载。从 JELLY_BEAN 开始,这是自动完成的。

  2. 任务实例必须在 UI 线程上创建。

  3. execute(Params...) 必须在 UI 线程上调用。

  4. 不要手动调用 onPreExecute()、onPostExecute(Result)、doInBackground(Params...)、onProgressUpdate(Progress...)。

  5. 任务只能执行一次(如果尝试执行第二次将抛出异常。)

    Further Details

在我个人看来,我建议使用 AsyncTask,因为它针对运行后台任务进行了高度优化,并利用了多核处理器等优势。

关于android - 来自非 ui 线程的异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14487226/

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