如何从stackbuilder启动父活动而不重新创建它?

时间:2021-03-09 12:09:04

标签: java android

我正在制作一个有两个活动的小型音频播放器,假设活动 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 在从后台堆栈启动时重新创建,我不想要它。

>

所以请帮我摆脱它。

0 个答案:

没有答案
相关问题