2012-10-19 26 views
0

我有一個名爲AudioService的服務,它擴展了android class Service。另外我在我的應用程序中有5個活動。我怎樣才能將我的一個服務綁定到這些活動中的三個?將多個活動綁定到一個音頻播放器服務

我感興趣的是在用戶查看這三種活動中的任何一種時運行服務的能力,但是如果他們查看其他任何內容,那麼該服務就會關閉。

例如,如果用戶單擊某個按鈕並進入其中一項活動並且服務已啓動。 Mediaplayer對象可以在那個時候啓動。他們可以點擊其他導航按鈕或後退按鈕,只要他們正在查看音樂不間斷播放的3種活動之一即可。

回答

0

使用共享原子變量與服務進行通信狀態。這將允許它停止/開始播放音樂。

  1. 聲明服務的靜態AtomicBoolean和可以設置/獲取此布爾值的靜態方法。如果音樂已經播放,這應該跟蹤。如果設置爲true,則音樂正在播放。

  2. 當用戶點擊一個按鈕並將它們帶到活動中時,使用該活動的onStart()方法來檢查此布爾值的值。如果它是假的,那麼音樂不會播放。將其設置爲true。將其設置爲true的方法也應該開始播放音樂。

  3. 在其他2個活動的onStart()方法上,將AtomicBoolean的值設置爲false。服務上的方法現在應該將AtomicBoolean設置爲false並釋放mediaplayer。

後臺服務本身可以繼續運行。只需重新建立媒體播放器,當你想再次啓動音樂。