2 haveferrair HaveFerrair 于 2015.07.27 22:01 提问

Android service与Activity的新手问题

一个音乐播放器,要在service里面进行音乐播放,有MediaPlayer,Handler,List,
Runnable几个对象,想从Activity里面传进去,用什么办法可以啊??实现Parcelable接口行吗?

5个回答

CSDNXIAOD
CSDNXIAOD   2015.07.27 22:12

Android service向activity发送信息
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_30137133
qq_30137133   2015.07.27 22:20

传这么多消息干嘛,感觉传个音乐路径以及状态值就可以了

Ji_xu_qiang
Ji_xu_qiang   2015.07.28 09:26

bindService(),对于activity与service在同一进程的,可直接通过Binder控制,进行数据传输等操作,比如binder.get()\binder.set()等一些自定义操作;对于不同进程的就得用IPC机制,AIDL自定义接口实现,可能要用到parcelable类。
startService(),activity与service没什么联系,可以直接通过Intent.putBundle(Bundle bundle)传过去,如果bundle里面数据包含自定义类,该类就得继承parcelable或Serializable类。
两个类的区别:
1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。
2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable 。

Arnold9009
Arnold9009   2015.07.28 09:42

用intent+bundle就行

zuishikonghuan
zuishikonghuan   2015.07.28 09:54

只传送音乐文件路径即可,intent里就可 intent.setData

Csdn user default icon
上传中...
上传图片
插入图片