У вас проблема с вашим кодом.Ваш код в итоге установит одинаковые PendingIntent
с одинаковыми Intent
на обеих кнопках.Это связано с тем, что «дополнительные функции» не учитываются при сравнении Intent
с, чтобы определить, существует ли PendingIntent
для данного Intent
.В вашем случае 2 Intent
выглядят одинаково, поэтому 2 вызова на PendingIntent.getActivity()
вернут одинаковые 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
с.