gpt4 book ai didi

java - 何时使用 Service 或 AsyncTask 或 Handler?

转载 作者:IT老高 更新时间:2023-10-28 21:03:14 26 4
gpt4 key购买 nike

谁能告诉我 TRUE 的区别吗?

最佳答案

我的经验法则是 AsyncTask 用于当我想做与单个 Activity 相关的事情时,而 Service 用于何时我想做一些在后台启动的 Activity 之后会继续的事情。

因此,如果我想在 Activity 中进行少量后台处理而不占用 UI,我将使用 AsyncTask。然后,我将使用该 Activity 中的默认 Handler 将消息传回,以确保在主线程上发生更新。在主线程上处理更新有两个好处:UI 更新正确发生,您不必太担心同步问题。

例如,如果我想做一个可能需要一段时间的下载,我会使用 Service。因此,如果我在我的应用程序中转到另一个 Activity 或完全转到另一个应用程序,我的 Service 可以继续运行并继续下载文件,以便在我返回我的应用程序时准备好。在这种情况下,我可能会使用 Status Bar Notification下载完成后,用户可以在方便时选择返回我的应用程序。

如果您将 AsyncTask 用于长时间运行的进程,您会发现在您离开 Activity 后它可能会继续,但是:

  • 如果处理完成时 Activity 处于后台,则在尝试使用结果等更新 UI 时可能会遇到问题。
  • 后台ActivityService更容易在需要内存时被Android杀死。

关于java - 何时使用 Service 或 AsyncTask 或 Handler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2285680/

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