2013-12-18 75 views
6

我想運行在我App.so背景我使用服務時涉及的,但服務有標籤叫android:process所以我的服務就像是一個長期運行的服務..在不同的流程中運行服務有什麼優勢和劣勢?

<service 
     android:name="com.purpleshade.services.ApplicationService" 
     android:process=":myprocess"> 

問題: :

所以我想知道在不同的過程中運行Service的優缺點。

回答

3

關閉我的頭頂......

缺點:

  • 你必須使用進程間通信去跟它,這比如果它是在同一個進程中的客戶端要慢。
  • 調試變得更加困難,因爲現在您可能需要附加一個不同的進程。
  • 如果它崩潰,它會獨立於主進程崩潰。有人可能會認爲這也是一個好處。需要考慮的事情。
  • 任何初始化代碼都需要特別注意,例如在您的應用程序實例中。每個進程都會有一個應用程序上下文的實例。因此,例如,如果您正在初始化GCM之類的東西,那麼您可能只想確保在主流程中這樣做。 (關於這點,具體爲:http://developer.android.com/reference/android/app/Application.html

潛在上升空間:

  • 唯一真正的上攻我能想到的,真是我使用一個單獨的進程,唯一的一次是,你得到一個全新的堆空間可以獨立於主進程工作。如果您需要這些內存進行某些操作,這很有用
+0

+1很好的解釋。我們是否需要與這兩個不同的進程進行交流?這意味着將值從一個進程更新到另一個進程? –

+0

@kalyanpvs對不起,我不明白你的問題。你能改說嗎? –

+0

如果我有一個服務,在不同的過程中連續運行..現在我想與另一個進程中的活動進行通信..這是可能的通信??如果可能,然後如何? –

相關問題