Существует проблема с кодом учебника, когда ожидающее намерение создается с идентичным контекстом, requestCode, intent и флажками, как предыдущий вызов, и не отменяется после его обработки.Таким образом, получатель (MessageReceivedActivity), по-видимому, ссылается на предыдущий PendingIntent.
Один из способов обойти это: атрибут requestCode в настоящее время не используется, поэтому, чтобы сделать pendingIntent уникальным, вы можете указать там уникальное значение, например:
int ukey = (int) System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getActivity(context, ukey,
intent, 0);
Это позволит MessageReceivedActivity получить намерение, которое вы намереваетесь (каламбур предназначен / :) для его получения.
Возможно, есть способ отменить pendingIntent, но яне мог заставить это работать.