2010-10-20 43 views

回答

2

根據需求,服務可以作爲單獨的過程實現。 Here是一個很好的解釋,何時將服務作爲單獨的流程實現或作爲現有應用程序中的組件(在同一流程中具有活動的服務)實現。

12

它既不是活動,也不是一個過程或線程。

Android應用程序的所有組件都在進程內運行,並且默認情況下使用一個主應用程序線程。您可以根據需要創建自己的線程。

+0

如果它不是一個單獨的進程,爲什麼要在活動與綁定服務之間進行通信,我們必須使用AIDL或Messager? – 2015-03-12 11:33:24

+2

@MarcinMierzejewski:您不必使用AIDL或「Messenger」與綁定服務進行通信。只有當該服務在另一個進程中時,您才需要使用基於IPC的機制,如AIDL。 – CommonsWare 2015-03-12 11:34:33

+0

好吧所以在大多數情況下使用IPC是一種矯枉過正? – 2015-03-12 11:40:53

0

那麼,在Android操作系統中處理主機服務,所以它不是一個過程。也許看看Service的定義更多細節...

1

服務不是一個進程也不是一個線程。它是過程的一部分和主線程。像所有其他組件一樣 - 服務在主線程中運行..可以說 - 您的應用程序有一個活動和一個服務,那麼您的應用程序是一個具有進程ID(pid)並在DVM實例中運行的unix進程... Process產生第一個線程,它是主線程。默認情況下,所有應用程序組件都在主線程中運行 - 您可以調用單獨的線程來執行並行作業。

相關問題