音乐播放器中activity 与service 交互

本文详细介绍了Android中Activity与Service之间的通信方式,包括利用BroadcastReceiver、Handler、绑定服务等手段实现消息传递的方法,并探讨了不同场景下最合适的通信策略。
摘要由CSDN通过智能技术生成
1、Activity向Service传递消息的方法:
    1)利用BroadcastReceiver发送广播,Activity发送广播,Service中定义广播接收者进行接收。
    2)利用绑定服务的方式开启服务,暴露服务中的方法,Activity进行调用。 这样既可以获取进度值用来改变UI  也可以改变service的值。
                    也就是说可以双向通信
    3)利用Intent打开服务(开启服务)的方式,通过Intent传递数据。

2、Service向Activity传递消息的方法:
    1)利用BroadcastReceiver,在Service中发送广播,Activity中接收。

    2)利用Handler在Service中发送消息,Activity中handleMessage进行处理

    3)利用绑定服务的方式开启服务,暴露服务中的方法,Activity进行调用。这样既可以获取进度值用来改变UI  也可以改变service的值

                     也就是说可以双向通信

    4)  利用Intent打开activity的方式,通过Intent传递数据。


  Activity向Service发送消息,还可以采用Intent,Service采用开启服务(startService)的方式。

      Service向Activity发送消息,网上也有说可以采用Intent打开Activity的方法,但用在播放器更新进度时,不太合适。

activity   向service 传递消息
    1 开启播放       传送文件地址   1  可以用Intent 首次开启服务   2 广播     3 暴露服务中的方法
     2 切换歌曲      传送文件地址     1  广播     2 暴露服务中的方法
     3 停止     直接停止   stopservice
     4 暂停          stopservice
     5  拖动进度条   1  广播     2  暴露服务中的方法


service 通知 activity更新UI

最好的  1   将activity 实例传到service  后调用其方法更新UI。

             2  广播

             3  handler

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值