Android 绑定服务与 AsyncTask

发布于 2024-12-10 21:01:35 字数 121 浏览 3 评论 0原文

我的活动中有很多异步任务,并且我需要为每个调用重写 AsyncTask 以使其异步。

我可以用 BoundService + AIDL 替换所有 AsyncTasks 还是只需要使用 AsyncTask 来完成?

I have a lot of async tasks in my activity, and I need to override AsyncTask for every call to do it async.

Can I replace all the AsyncTasks with BoundService + AIDL or I need to do it only with AsyncTask?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠北森屋 2024-12-17 21:01:35

服务在后台运行但仍在主线程(又名 UI 线程)中运行,您将收到 ANR 异常。根据 API 此处

关于 Service 类的大多数困惑实际上围绕着什么它不是:

  • 服务不是一个单独的进程。 Service 对象本身并不意味着它运行在自己的进程中;除非另有说明,否则它与其所属的应用程序在同一进程中运行。
  • 服务不是线程。它本身并不是在主线程之外完成工作的方法(以避免应用程序无响应错误)。

您可以使用服务,但如果您希望某些内容在单独的线程中运行,您仍然需要在服务或活动中实现线程逻辑。

Service run in background but still run in main thread (AKA. UI thread), you will get ANR exception. according to API here:

Most confusion about the Service class actually revolves around what it is not:

  • A Service is not a separate process. The Service object itself does not imply it is running in its own process; unless otherwise specified, it runs in the same process as the application it is part of.
  • A Service is not a thread. It is not a means itself to do work off of the main thread (to avoid Application Not Responding errors).

You can use service, but you still need implement your thread logic in either service or activity,if you want something run in a separate thread.

笨笨の傻瓜 2024-12-17 21:01:35

Service是守护进程,AsynkTask是后台线程

Service is a daemon, AsynkTask is background thread

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文