2010-04-26 81 views
0

如果應用程序通過bindServicestartService開始Service,此服務對象是否會從與應用程序不同的進程運行?應用程序的服務是否可以運行在不同的進程中?

我問,因爲許多Android示例項目開始一個服務,並使用IPC看起來完全沒有必要考慮,根據Android Service文檔,「......服務,像其他應用程序對象一樣,在主線程中運行他們的託管過程。「

如果連接到由您自己以外的應用程序啓動的Service,IPC,AIDL和IBinder接口似乎很有用。

這是正確還是公平的理解?

回答

1

如果應用程序通過 bindService或startService開頭的服務,將在本 服務對象曾經從工藝 不同於 應用程序的不同運行?

是的,通常如果服務在另一個應用程序中實現。

我問,因爲很多Android例如 項目開始服務和 使用IPC

真的傳達給他們?

IPC,AIDL和的IBinder接口 只有當連接到 服務比自己的其他應用程序 開始顯得非常有用。

IPC和AIDL,是的。粘合劑,沒有。 You can use that locally too

+0

「真的嗎?」是的,我也很驚訝,因爲在同一過程中只使用IPC與您的服務進行通信似乎沒有必要。因爲這是不必要的,您會建議什麼是與同一過程中正在運行(並且只會運行)的服務進行通信的最佳方式? – skyler 2010-04-26 21:44:06

+0

那麼,你將如何使用它有所不同。我在一些書中有一些很好的章節,這些章節進入了許多血淋淋的細節。 :-)我會從本地綁定模式開始,按照上面鏈接到的示例項目。只要您不打算讓服務在所有活動結束後繼續運行,就應該可以工作。在後一種情況下,您需要使用'startService()'而不是'bindService()'(或者除此之外)。你絕對*不需要的是AIDL在本地唯一的情況。 – CommonsWare 2010-04-26 21:54:06

相關問題