2

我阅读了 Android 文档 - http://developer.android.com/guide/topics/media/mediaplayer.html

它说“..您希望它在用户与其他应用程序交互时继续播放 - 那么您必须启动一个服务并从那里控制 MediaPlayer 实例。”

但是我发现如果我从一个活动开始一个本地音乐文件,然后离开那个活动,(例如,按 HOME 键并与另一个应用程序交互),音乐会继续播放。

所以,我不明白“文档中的“必须启动服务”。我错过了什么吗?

目前这对我的应用程序来说不是一个大障碍。我只是想知道如果我不使用服务可能会出现什么潜在问题。(服务的寿命更长,所以媒体播放器可以更早地被杀死,还有其他的吗?)

我们的开发基于Android 2.2。

感谢您提前提供任何帮助。

4

3 回答 3

2

一个重要的原因是,如果您不使用服务,当活动暂停或终止时,用户将无法在您的应用程序之外收听音乐。从技术上讲,您可以制作一个音乐应用程序,但如果您的用户在另一个应用程序处于前台或手机处于不同状态(锁定)时无法听音乐,那么它不会成为一个非常好的应用程序。您应该查看活动生命周期以更深入地了解该过程。请注意,此行为是为节省电力、内存和 cpu 周期而设计的。

它也有助于不要在更传统的桌面开发使用中考虑服务。即使您的活动不活跃,您也希望这件事能够继续存在。

有关活动生命周期的更多信息 管理活动生命周期

对于如何 http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/

为什么 将服务用于后台任务很重要?

于 2012-06-18T18:59:48.940 回答
2

现在在 Activity 中播放音乐可能没问题,但是当 Android 资源不足时,它可能会试图杀死你的 Activity。当您将服务添加到应用程序时,如果该进程符合某些条件(例如播放音乐),Android 将尝试尽可能长时间地保持该进程。阅读服务的流程生命周期部分:

http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle

于 2012-06-18T19:00:28.307 回答
1

该活动可能会被 Android 或用户杀死,然后音乐将停止播放。

于 2012-06-18T18:50:38.750 回答