我个人喜欢用Parcelable来传递,名称不一样但是实现的效果是一样的,都能往另一个组件传递完整的list。打个比方,我拿活动往服务里传递举例,其他的组件同理。如果背景是做一个音乐播放器,我要把活动中从SD卡读取到的所有歌曲存在list中,然后传递到负责播放音乐的service里,首先我应该对描述歌曲信息的类实现Parcelable接口。
public class MusicInfo implements Parcelable {
private int m_musicId;
private String m_musicPath;
private String m_musicTitle;
private String m_musicSinger;
private int m_duration;
然后新建intent,用putParcelableArrayListExtra方法并startService.
Intent service=new Intent(MainActivity.this,MusicService.class);
service.putParcelableArrayListExtra("mp3Infos",(ArrayList<? extends Parcelable>) musicList);
startService(service);
接着,在服务中接收传递的list
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("music service", "oncreate");
mediaplayer = new MediaPlayer();
mp3Infos = intent.getParcelableArrayListExtra("mp3Infos");
return super.onStartCommand(intent, flags, startId);
}
本文介绍如何在Android应用程序中利用Parcelable接口,通过Intent的putParcelableArrayListExtra方法将List集合有效传递到服务(Service)进行处理。
3491

被折叠的 条评论
为什么被折叠?



