2013-01-22 35 views
1

我正在製作Android庫項目,通過我們的API播放音樂文件。 目前我正在使用MusicService(使用媒體播放器)播放音樂文件。 MusicService包含收音機的一個實例。收音機正在向MusicService提供音樂文件。因此,收音機可用於檢索SD卡上的文件,通過api調用檢索文件,...收音機的類型可以根據使用相同庫建立的不同應用程序而不同。Android:在圖書館項目中使用服務

現在,我想知道...如果我用這個相同的庫創建2個應用程序。一個應用程序使用帶SD卡的收音機,另一個使用來自api的歌曲的收音機。這兩個應用程序是否會互相干擾,都會操縱相同的服務?

因此,當我第一次從SD卡應用程序開始播放時,點擊播放,服務開始播放。如果接下來,我打開設備上的第二個應用程序並點擊暫停,它是否會暫停從其他應用程序播放的音樂?

我知道這聽起來很複雜,但我希望我明確提出了我的問題。

+0

你使用壽命在庫項目?然後每個使用這個lib項目的應用程序將啓動它自己的服務實例,並且它們不會發生衝突。 –

回答

-1

是的,服務會干擾,除非您以不同的意圖啓動它們。根據我的經驗,只有其中一個會被觸發,這可能會顯示你不穩定的行爲。

你可以做什麼,或許在這兩個應用程序中爲你的服務定義單獨的動作,並使用隱式意圖來啓動它們。

如果您使用明確的意圖,我認爲它可能工作,但不確定。你有沒有觀察到任何東西?

+0

「是的,服務會干涉」我不認爲這是真的。他們將使用相同服務的單獨副本,而不是相同的服務(無論如何,默認情況下,除非您設置進程ID並執行其他管道工作)。 –

+0

再想一想,也許你是對的。但我不確定何時使用隱式意圖啓動服務。 –

+0

如果您要導出意圖,以便您希望外部應用程序使用它(隱式),並且您在兩個應用程序中都這樣做(兩個應用程序都說它們服務於同一個意圖),那麼是的,您可能會導致衝突,但不會在圖書館項目級別,在使用圖書館項目級別的應用程序(通過清單中的設置如何處理服務以及您支持的目的)。 –