2011-02-12 117 views
9

我想問一些例子,其中兩個不同的活動(第一個活動中的按鈕打開第二個活動),正在與一個服務(AIDL等)通信 我試過很多不同的教程,但它們只是關於如何進行一項活動 - >一項服務。如何將兩個Android活動綁定到一個服務?

回答

11

這可能是老了,但我會盡力回答反正它...

在Android中,看到只有一個Activity可以同時綁定到Service,只有一個Activity可以顯示在一次,沒有真正的理由想要一次綁定2個活動。

但是,如果您願意,最好的解決方案是在onResume()方法中綁定Service,並在onPause()方法中解除綁定。這允許您給兩個不相關的活動訪問該服務,同時只有一個綁定。

1

每個Activity負責從Service綁定和解除綁定。這通常在onResume/或onStart/onStop中完成,具體取決於您的要求。一個Activity不能將另一個Activity綁定到Service。就是那樣子。 :)

+1

這不是我想說的事情。 – lauriys 2011-02-13 20:11:10

+2

我不希望一個活動將另一個活動綁定到服務。 我只想知道,如何將兩個活動綁定到一個服務。 第一個活動啓動服務,第二個將自己綁定到它。 – lauriys 2011-02-13 20:12:03

0

您可以通過使用提供IPC通信的Messenger而不使用AIDL來實現。這是您可以將多個活動綁定到服務的方式。

如果您需要自己的服務與遠程進程進行通信,那麼您可以使用Messenger爲您的服務提供接口。 該技術允許您在不需要使用AIDL的情況下執行進程間通信(IPC) 。

看看this link。當你看到代碼時,你會發現一個包含Handler的開關盒,這將滿足你將從多個活動/組件發送的多個請求。謝謝。我希望這個答案對你有所幫助。

相關問題