我正在制作一个有两个活动的小型音频播放器,假设活动 A 和活动 B。
Activity A 有选择歌曲的选项,Activity B 有媒体选项来暂停和播放歌曲,并在 Style 设置为 MediaStyle 的情况下通知。
这是我创建通知的代码
public void createNotification(int togglePic,boolean isOnGoing) {
Utils.createNotificationChannel(getApplicationContext());
Intent intent=new Intent(ServiceMusicPlayer.this,ActivitySong.class);
intent.putExtra("music",music);
intent.putExtra("image",image);
intent.putExtra("title",title);
intent.putExtra("key",key);
// Create the TaskStackBuilder and add the intent, which inflates the back stack
TaskStackBuilder stackBuilder = TaskStackBuilder.create(getApplicationContext());
stackBuilder.addNextIntentWithParentStack(intent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(), Integer.toString(NOTIFICATION_ID))
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setSmallIcon( R.drawable.music_icon)
.setStyle(new androidx.media.app.NotificationCompat.MediaStyle()
.setShowActionsInCompactView(0,1,2)
.setMediaSession(mediaSession.getSessionToken()))
.addAction(android.R.drawable.ic_media_rew, "Backward", createPendingIntent(0))
.addAction(togglePic, "Play-Pause", createPendingIntent(1))
.addAction(android.R.drawable.ic_media_ff, "Forward", createPendingIntent(2))
.setContentIntent(pendingIntent)
.setContentTitle(title)
.setContentText(getString(R.string.startGreet))
.setLargeIcon(images)
.setAutoCancel(false)
.setOngoing(isOnGoing);
NotificationManagerCompat notificationManager=NotificationManagerCompat.from(getApplicationContext());
notificationManager.notify(NOTIFICATION_ID,builder.build());
现在,如果我点击通知,活动 B 就会启动,如果我按下返回,活动 A 应该来自后台堆栈,但问题是活动 A 在从后台堆栈启动时重新创建,我不想要它。
>所以请帮我摆脱它。