根据需要使用IntentService进行后台MediaPlayer播放是否合理?根据
developer’s guide,IntentService只有在实际工作时才会持续.考虑到每当我想再次播放音轨时重新初始化MediaPlayer所产生的开销,这似乎是一个糟糕的想法……
所以我的问题是:使用这种服务实际产生的开销有多大.它会对系统/应用程序的性能产生可察觉的影响吗?我应该用专用的工作线程来使用我自己的Service实现吗?
解决方法
Is it reasonable to use an IntentService for background MediaPlayer playback on demand?
恕我直言,不,因为你不能用这种方式真正改变曲目.此外,您需要知道轨道何时完成,除非泄漏内存,否则您不能这样做.最后,这意味着Android将终止你的进程,可能在onHandleIntent()结束后几毫秒,这使得一个无用的音乐播放器.
Should I use my own implementation of Service with a dedicated worker thread instead?
您可能不需要线程,因为MediaPlayer已经是异步的.只有你自己做网络I / O或磁盘I / O或其他东西,你才可能需要自己的线程.但拥有服务 – 可能是前台服务 – 是音乐播放器的典型方法.