2011-10-18 109 views
1

我在我的活動中有很多異步任務,我需要爲每次調用重寫AsyncTask來完成異步。Android綁定服務與AsyncTask

我可以使用BoundService + AIDL來替換所有的AsyncTasks,或者我只需要使用AsyncTask來完成它?

回答

2

服務在後臺運行,但仍在主線程(也稱爲UI線程)中運行,您將收到ANR異常。根據API here

有關服務類最混亂實際上都是圍繞着它不是什麼:

  • 服務沒有單獨的進程。服務對象本身並不意味着它在自己的進程中運行;除非另有說明,否則它與它所屬的應用程序在相同的過程中運行。
  • 服務不是線程。它不是一種自己的方式來處理主線程(以避免應用程序不響應錯誤)。

您可以使用服務,但您仍然需要在服務或活動中實現您的線程邏輯,如果您希望某些東西在單獨的線程中運行。

1

服務是守護進程,AsynkTask是後臺線程