gpt4 book ai didi

android - 为什么android中有AsyncTask?

转载 作者:行者123 更新时间:2023-11-29 16:02:35 25 4
gpt4 key购买 nike

android中为什么要用异步任务来执行任务,任务可以直接在ui线程中执行。 ui线程有什么限制吗?

最佳答案

Is there any restriction in ui thread?

主应用程序(“UI”)线程驱动您的用户界面。如果你占用那个线程来做你自己的工作,当那个工作正在进行时,你的 UI 将被卡住。在您允许主应用程序线程恢复其正常工作之前,您尝试进行的更新不会发生。此外,当您绑定(bind)主应用程序线程时,来自用户的触摸事件将不会响应。

问题是,除非您被告知,否则任何时候 Android 代码以您的回调方法之一的形式调用您的代码时,它都会在这个主应用程序线程上执行。

我的一般建议是在任何单独的回调方法(例如,onCreate()getView()onListItemClick()) 需要在 1ms 以内。许多此类回调作为 UI 处理的一部分被调用。如果花费太多时间,您可能会“丢帧”(即阻止 UI 以所需的每秒 60 帧的速率更新),从而导致“卡顿”。

AsyncTask 是一种帮助将工作从主应用程序线程中移出的方法,同时仍然可以相当方便地使用该工作的结果更新 UI。通常,您不能从后台线程更新 UI,但也有一些异常(exception)(例如,ProgressBar)。

关于android - 为什么android中有AsyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22661753/

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