所以我正在开发一个简单的音乐播放器。顾名思义,音乐播放器可以播放歌曲、暂停播放、前进到下一首歌曲、返回上一首歌曲以及完全停止播放。播放歌曲时,会显示艺术家姓名和歌曲名称的通知;此通知还具有三个按钮(操作):停止、暂停和下一步。
我遇到的问题是确保单击任一操作时,都会触发与该操作相关的播放控件,而且,我完全不知道该怎么做。我搜索了 Android 通知: http: //developer.android.com/guide/topics/ui/notifiers/notifications.html,但它没有澄清或提供太多关于通知操作的信息。
下面是一个简单的动作示例(应该与单击通知的“下一步”按钮相关联:注意:下面描述的所有代码都写在以下包下:com.deadpixels.light.player并且调用了 Activity :玩家活动
public void nextSong() {
if (position == songs.size() -1) {
Toast.makeText(this, "No more songs on queue", Toast.LENGTH_SHORT).show();
if(mPlayer.isPlaying()) {
return;
}
else {
buttonPlay.setImageResource(R.drawable.button_play);
}
return;
}
else {
position++;
playSong(songs.get(position));
}
}
这是我试图做的:
Intent nextIntent = new Intent(KEY_NEXT);
PendingIntent nextPendingIntent = createPendingResult(0, nextIntent, 0);
NextIntent 的操作在哪里:
public static final String KEY_NEXT = "com.deadpixels.light.player.PlayerActivity.nextSong";
然后我通过 addAction() 将其添加到通知中:
mBuilder.addAction(R.drawable.not_action_next, "Next", nextPendingIntent);
你们知道我还能尝试什么吗?使用我上面解释的内容根本没有任何作用,会显示通知,并具有三个操作按钮,但单击它们对我没有任何作用。
有一次我想,如果我添加了带有动作名称的意图过滤器,但后来我想,好吧,它们都在同一个命名空间上,我为什么要这样做?