Android绑定服务与AsyncTask

时间:2011-10-18 17:39:50

标签: android android-asynctask android-service aidl

我的活动中有很多异步任务,我需要为每次调用覆盖AsyncTask以进行异步。

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

2 个答案:

答案 0 :(得分:2)

服务在后台运行但仍在主线程(AKA.UI线程)中运行,您将获得ANR异常。根据API here

关于Service类的大多数混淆实际上都围绕着它不是:

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

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

答案 1 :(得分:2)

Service是守护进程,后台线程中的AsyncTask