Activity 与 Service 实现Parcelable接口传递 ArrayList 集合

在Android中,Activity和Service之间的数据传递通常通过Intent进行。如果需要传递一个List<MusicInfo>对象,对象需要实现Parcelable接口。文章详细介绍了如何实现Parcelable,包括describeContents()、writeToParcel()和Creator接口的使用。尽管Serializable接口也可用于数据传递,但无法处理ArrayList,因此Parcelable是传递复杂数据结构的首选方式。在实现过程中,序列化和反序列化的顺序必须保持一致,否则会导致异常。
摘要由CSDN通过智能技术生成

在 Activity 跟 Service 的通信过程中,一般用来传递数据的载体就是Intent了,一般用来传数据呢,我们都是通过putExtra 函数来传递简单的String,int, long类型的值,

但是现在存在这样一个问题:

1)在Activity里面有一个歌曲列表 List, 里面的对象是自定义的一个MusicInfo类,即 List<MusicInfo> 对象,这是用来展现的。

2)在后台Service中,也需要这样一个List<MusicInfo>, 来实现当歌曲播放结束的时候,自动循环播放或者顺序播放,或者随机播放。

我想要把整个List<MusicInfo> 给传过去,那该怎么办?

一般来说,将自定义的对象放到 Intent 里面来传递,可以有两种实现方法:

1)传递的对象实现 Serializable 接口,代码如下:

class MusicInfo implements Serializable{
		private static final long serialVersionUID = -39201440269615431L;
		...
	}
在设置 Intent 的时候,

intent.putExtra("music", new MusicInfo());

在Service 端接收 Intent 的时候,


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值