gpt4 book ai didi

android - 两个按钮,一个 Activity

转载 作者:行者123 更新时间:2023-11-29 23:26:15 24 4
gpt4 key购买 nike

我的通知中有两个按钮,它们打开相同的 Activity 但作为额外的不同数据发送。我真的需要创建 2 个待定 Intent 和 2 个 Intent 吗?也许有一些简短的版本?

        Intent intent1 = new Intent(this, ResponseActivity.class); //same
intent1.putExtra("RES","a");
intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent1 = PendingIntent.getActivity(this, 1, intent1, PendingIntent.FLAG_UPDATE_CURRENT);

Intent intent2 = new Intent(this, ResponseActivity.class); //same
intent2.putExtra("RES","b"); //but different
intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent2 = PendingIntent.getActivity(this, 1, intent2, PendingIntent.FLAG_UPDATE_CURRENT);


NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_launcher_background)
.addAction(0, "A", pendingIntent1)
.addAction(0, "B", pendingIntent2)
.setLargeIcon(bitmap)
.setContentTitle(userDB.getName())
.setContentText(smallText)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setColor(getResources().getColor(R.color.colorPrimary))
.setPriority(NotificationCompat.PRIORITY_DEFAULT);

最佳答案

您的代码有问题。您的代码最终将在两个按钮上设置相同的 PendingIntent 和相同的 Intent。这是因为在比较 Intent 以确定给定 Intent 是否已存在 PendingIntent 时,不考虑“额外”。在您的情况下,2 个 Intent 看起来相同,因此对 PendingIntent.getActivity() 的 2 个调用将返回相同的 PendingIntent

您需要将代码更改为如下所示:

    Intent intent = new Intent(this, ResponseActivity.class); //same
intent.putExtra("RES","a");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent1 = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);

// Update the "extra" in the Intent
intent.putExtra("RES","b"); //but different
PendingIntent pendingIntent2 = PendingIntent.getActivity(this, 2, intent, PendingIntent.FLAG_UPDATE_CURRENT);

我使用一个 Intent 产生了 2 个不同的 PendingIntent。这里的关键是为 requestCode(它是 PendingIntent.getActivity() 的第二个参数)使用不同的值。这确保您获得 2 个不同的 PendingIntent

关于android - 两个按钮,一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53488334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com