使用服务或IntentService在单独线程中的MediaPlayer



嗨,我需要一个媒体播放器实例才能在后台运行,因此我开始使用服务。

一切正常,但是一段时间后我会得到ANR(应用程序不响应),即使UI正常工作。公平地说,我确实知道服务仍在主线程上运行,因此ANR很有意义。

因此,我尝试使用IntentService,它应该产生自己的线程,但除了头痛外,我什么也没有。当工人独立时,IntentService似乎还可以,但是在这里并非如此,因为每次我需要更改轨道时,我都需要从主应用程序调用starterVice(意图)方法,而且我不想最终得到多个MediaPlayer Instances互相玩。

我还看到了一个提示,建议在服务内使用线程。我如何与媒体播放器一起做?声明应该在该线程中还是仅仅是"准备/开始等"?从我所看到的似乎没有用的东西,但我可能只是实施了错误

任何提示都非常感谢,可能会有一个非常简单的示例。

欢呼

我强烈建议您在此处阅读培训文档:http://developer.android.com/guide/guide/components/services.html

这对我真的很有帮助。然后,传输音频的NPR应用程序是开源的,因此请在此处查看他们的服务:http://code.google.com/p/npr-android-app/source/browse/npr/src/org/npr/android/news/playbackservice.java

阅读这两者,我建议您自己使用服务并亲自处理线程。我尚未使用IntentService,但是根据您的经验,处理音乐流的班级似乎是错误的班级。希望有帮助!

最新更新