因此,我正在製作一個簡單的音樂播放器。音樂播放器可以播放歌曲,暫停播放,前進到下一首歌曲,返回前一首歌曲並完全停止播放。當您播放歌曲時,會顯示一個包含藝術家姓名和歌曲名稱的通知;此通知也有三個按鈕(操作):停止,暫停下一個。如何使用通知中的操作而無需啓動活動
我遇到的問題是確保在單擊任一動作時觸發與動作相關的播放控制,以及我完全不知道如何做到這一點。我搜索了Android通知:http://developer.android.com/guide/topics/ui/notifiers/notifications.html,但它沒有澄清或致力於有關通知操作的太多信息。
這裏是例如一個簡單的動作(這應該與通知上的「下一步」按鈕,點擊相關的:注:下面描述的所有後面的包裝下編寫的代碼的:com.deadpixels.light .player和活動被稱爲:PlayerActivity
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);
你們是否知道還有什麼我可以試試嗎?使用我上面解釋的什麼都沒有,通知顯示出來,並且有三個動作按鈕,但點擊它們對我沒有任何幫助。
有一次,我想也許如果我添加了動作名稱的意圖過濾器,但後來我想,他們都在同一個命名空間,我爲什麼要?
一定要存儲接收器實例..商店在哪裏? –
@anonymous在您的活動或服務中保留對其的引用。 – acj
爲什麼不在清單中註冊BroadcastReceiver並使其成爲獨立的類? – streamride