无法从服务意图中获取自定义对象
问题描述:
我正在创建音乐播放器。当我的意图发送服务信息和播放列表中的自定义对象为了MyService,为MyService CA不打算把它并返回null无法从服务意图中获取自定义对象
发送意图为了MyService:
Intent intent = new Intent(getActivity(), MyService.class);
intent.putExtra("command", list.get(position));
intent.putExtra("dataBase", serviceInfo);
getActivity().startService(intent);`
试图获取服务信息,从意向为MyService与设置和播放列表
serviceInfo = (SettingsAndPlaylist) intent.getSerializableExtra("dataBase");
position = serviceInfo.getPosition();
repeatController = serviceInfo.isRepeat();
playList = serviceInfo.getPlayList();
对象是serealizable和发送意图不为空
答
那么,你的序列化类写着:
public class SettingsAndPlaylist implements Serializable {
private static List playList;
private static int position;
private static boolean repeat;
private static boolean random;
连载作品为对象的实例字段,不静态字段。顺便说一句,你还应该声明一个serialVersionUID。
有关这两点的详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html。
列表包含的对象的类型是什么 – Ramesh
是否意图为空,而不是您的'数据库'对象? 请检查(和张贴)来自logcat的异常 – Tapirboy
您应该在问题中包含SettingsAndPlaylist的源代码,而不是使用外部链接:否则,当您在github上的代码发生更改时,他的问题和答案对新读者(这就是为什么我在我的答案中复制了相关部分的原因)。或者更好的是,创建一个简约的测试用例来展示您的问题,并将其发布到此处。 – mrlem