开发者社区> 问答> 正文

Android service与Activity的新手问题

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

展开
收起
爵霸 2016-06-14 13:18:13 1775 0
1 条回答
写回答
取消 提交回答
  • 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 。

    2019-07-17 19:37:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载