簡體   English   中英

將多個活動綁定到一個音頻播放器服務

[英]Binding several activities to one service for audio player

我有一個名為AudioService的服務,該服務擴展了android類Service。 此外,我的應用程序中有5個活動。 如何將我的一項服務僅綁定到其中三個活動?

我感興趣的是能夠在用戶查看這三個活動中的任何一個時運行服務,但是如果他們查看其他任何內容,則該服務將關閉。

例如,如果用戶單擊一個按鈕並進入這3個活動之一,則該服務將啟動。 可以在那時啟動Mediaplayer對象。 他們可以單擊其他導航按鈕或后退按鈕,並且只要他們正在觀看音樂而不會中斷地繼續播放這3個活動之一。

使用共享的原子變量與服務通信狀態。 這樣可以停止/開始播放音樂。

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

  2. 當用戶單擊將其帶入活動的按鈕時,請使用該活動的onStart()方法檢查此布爾值。 如果為假,則音樂不播放。 將其設置為true。 將其設置為true的方法也應該開始播放音樂。

  3. 在其他2個活動的onStart()方法上,將AtomicBoolean的值設置為false。 服務上的方法現在應將AtomicBoolean設置為false並釋放媒體播放器。

后台服務本身可以繼續運行。 要重新開始播放音樂時,只需重建媒體播放器即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM