2013-01-22 36 views
1

我正在制作Android库项目,通过我们的API播放音乐文件。 目前我正在使用MusicService(使用媒体播放器)播放音乐文件。 MusicService包含收音机的一个实例。收音机正在向MusicService提供音乐文件。因此,收音机可用于检索SD卡上的文件,通过api调用检索文件,...收音机的类型可以根据使用相同库建立的不同应用程序而不同。Android:在图书馆项目中使用服务

现在,我想知道...如果我用这个相同的库创建2个应用程序。一个应用程序使用带SD卡的收音机,另一个使用来自api的歌曲的收音机。这两个应用程序是否会互相干扰,都会操纵相同的服务?

因此,当我第一次从SD卡应用程序开始播放时,点击播放,服务开始播放。如果接下来,我打开设备上的第二个应用程序并点击暂停,它是否会暂停从其他应用程序播放的音乐?

我知道这听起来很复杂,但我希望我明确提出了我的问题。

+0

你使用寿命在库项目?然后每个使用这个lib项目的应用程序将启动它自己的服务实例,并且它们不会发生冲突。 –

回答

-1

是的,服务会干扰,除非您以不同的意图启动它们。根据我的经验,只有其中一个会被触发,这可能会显示你不稳定的行为。

你可以做什么,或许在这两个应用程序中为你的服务定义单独的动作,并使用隐式意图来启动它们。

如果您使用明确的意图,我认为它可能工作,但不确定。你有没有观察到任何东西?

+0

“是的,服务会干涉”我不认为这是真的。他们将使用相同服务的单独副本,而不是相同的服务(无论如何,默认情况下,除非您设置进程ID并执行其他管道工作)。 –

+0

再想一想,也许你是对的。但我不确定何时使用隐式意图启动服务。 –

+0

如果您要导出意图,以便您希望外部应用程序使用它(隐式),并且您在两个应用程序中都这样做(两个应用程序都说它们服务于同一个意图),那么是的,您可能会导致冲突,但不会在图书馆项目级别,在使用图书馆项目级别的应用程序(通过清单中的设置如何处理服务以及您支持的目的)。 –