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 暴露服务中的方法
activity 向service 传递消息
1 开启播放 传送文件地址 1 可以用Intent 首次开启服务 2 广播 3 暴露服务中的方法
2 切换歌曲 传送文件地址 1 广播 2 暴露服务中的方法
3 停止 直接停止 stopservice
4 暂停 stopservice
service 通知 activity更新UI
最好的 1 将activity 实例传到service 后调用其方法更新UI。
2 广播
3 handler