我想实现以下目标:
我知道前两个任务可以通过使用服务来完成,因为我已经在之前的某个应用程序中完成了这项任务,但是当涉及播放音频文件时,它需要从活性。
因为可以使用 BroadcastReceiver 来实现从服务访问Activity,但是如何从Activity访问服务的方法呢?
所以,现在出现了一个问题:是否为播放音频服务本身(从活动触发)或使用 IntentService
文档说,
没有简单或直接的方式直接从IntentService与用户界面进行交互。
和
使用IntentService启动的任何任务都不能被中断
我可能想停止录制蚂蚁时间并随时播放。
哪种最符合要求 - > 服务或 IntentService ??
任何建议都将受到高度赞赏。
答案 0 :(得分:7)
我会根据您的需要使用Service
而不是IntentService
。
特别是,使用绑定Service
,允许绑定到Activity
的{{1}}与Service
与Activity
之间的双向通信。
IntentService
类用于使用自己的工作线程进行一次性操作,一旦线程上的工作完成,线程终止,IntentService
调用stopSelf()
终止本身。这意味着用户(通过Activity
)和IntentService
之间的任何用户互动都存在问题。
另一方面,绑定Service
将一直存在,直到它显式停止或直到最后一个绑定组件解除绑定。这允许更长期的互动。
对于播放,如果您使用Service
之类的东西来处理其自己的线程以进行播放,那么在{@ 1}}上运行的事实不是问题。
除此之外,如果您使用绑定的MediaPlayer
,Service
和MediaPlayer
,则可以从MediaController
控制播放,停止,暂停,搜索等。< / p>
编辑:有关详细信息,请参阅...... Bound Services