我正在制作一个音乐播放器。当我在自定义对象中向MyService发送服务信息和播放列表时,MyService无法从intent获取它并返回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();
带有设置和播放列表的对象是可实现的,并且在发送意图中不为空
答案 0 :(得分:0)
嗯,您的可序列化类读取:
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。
答案 1 :(得分:0)
不确定从onStartCommand
返回的是哪些标记,您是否尝试过不同的标记,例如START_REDELIVER_INTENT
?
如果您正在使用START_STICKY
,则需要为空意图做好准备。