如何在Android中包装背景媒体播放器

时间:2014-05-22 17:44:25

标签: java android multithreading service android-mediaplayer

对于我的应用程序,我想启动一个MediaPlayer来播放远程流并捕获和显示事件。即使应用程序移动到后台,媒体播放器也必须继续播放。因此,我认为Service是包装实现代码的正确选择:

  
      
  • 应用程序的工具,告诉系统它想要在后台执行的操作(即使用户不是   直接与应用程序交互)。这对应于通话   到Context.startService(),它要求系统安排工作   服务,直到服务或其他人明确运行   停止它。

  •   
  • 应用程序的一个工具,用于将其某些功能公开给其他应用程序。这对应于调用   Context.bindService(),它允许长期连接   为了与之互动而对服务做出了贡献。

  •   

由于我在服务中执行阻止任务,这也会阻止不接受的UI线程。这使我有可能使用IntentService或将onStartCommand()的代码委托给另一个线程。使用IntentService我必须在Looper.loop()结束时调用onHandleIntent()

这种方法就像一个魅力,但它让我觉得这只是一个黑客,应该做得恰到好处。甚至可能没有ServiceIntentService。毕竟我还在使用事件总线库Otto

0 个答案:

没有答案