一个音乐播放器,要在service里面进行音乐播放,有MediaPlayer,Handler,List,
Runnable几个对象,想从Activity里面传进去,用什么办法可以啊??实现Parcelable接口行吗?
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 。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。