gpt4 book ai didi

android - 当您可以使用服务时,为什么还要使用 AsyncTasks?

转载 作者:行者123 更新时间:2023-11-29 22:01:26 24 4
gpt4 key购买 nike

当您学习为 Android 开发时,您会了解到如果在 ui 线程内运行任何类型的进程(花费超过 5 秒),系统将显示臭名昭著的 ANR 消息。就在那时,他们引入了邪恶的怪物……AsyncTask。一开始你把这个类看作是你的救星,但后来你意识到它是开发中最大的问题......处理旋转或 ui 事件变得如此成问题,甚至是痛苦的。你们怎么看……AsyncTasks 值得麻烦吗?无论屏幕旋转如何,任何其他方法都可以减少执行长时间运行的任务的问题?我猜你可能会说,嘿,你为什么不把它变成一个服务……是的,这是一个解决方案,但让我们回到我真正的问题。为什么我们不只使用服务并完全停止使用 AsyncTasks...它们到底有用吗?

最佳答案

在开发过程中,选择合适的执行组件总是好的。您需要明确您的需求,并根据它在 ServiceAsyncTask 之间进行选择。

  • 服务是独立于任何其他组件存在的 Android 组件。 Activity 可能来来去去,但如果您愿意,服务可以一直存在。它们扮演多种角色,从管理多个 Activity 所依赖的状态到充当 cron 作业再到处理更长的应用小部件更新。

  • AsyncTask 是一个安排在主应用程序线程之外执行某些工作的类。对于 AsyncTask 的实现者和用户而言,它如何发挥这种魔力通常并不重要。实际上,它使用线程池和工作队列。 AsyncTask 使用 Handler 来帮助安排要在主应用程序线程上完成的部分工作(例如,通知用户进度更新)。

有关更多说明,请参阅它们之间的区别。

enter image description here

关于android - 当您可以使用服务时,为什么还要使用 AsyncTasks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822039/

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