Нажатие кнопки уведомления открывает последнюю статью, а не соответствующую

#android #push-notification

#Android #push-уведомление

Вопрос:

Я работаю над приложением, в котором я использую пользовательское Push-уведомление всякий раз, когда с сервера поступает обновление, необходимое для отправки уведомления, я отправляю уведомление с помощью конструктора уведомлений, и все работает должным образом, и я перенаправляю пользователя на соответствующую запись на ViewPager, сопоставляя заголовок уведомления.

Я прикрепляю код, который я использую

Код конструктора уведомлений

 Intent resultIntentArticle = new Intent(context, HomeActivity.class);
resultIntentArticle.putExtra("pushNotificationClick", "yes");
resultIntentArticle.putExtra("heading", allArticles.get(0).getArticleHeading().trim());
resultIntentArticle.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent resultPendingIntent = PendingIntent.getActivity(context,
        0, resultIntentArticle,
        PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder = new NotificationCompat.Builder(context);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    mBuilder.setSmallIcon(R.mipmap.icon_not);
} else {
    mBuilder.setSmallIcon(R.mipmap.icon_not);
}
mBuilder.setColor(getResources().getColor(R.color.colorPrimary));
mBuilder.setContentTitle(""   allArticles.get(0).getArticleHeading().trim())
        .setContentText(""   allArticles.get(0).getArticleContent().trim())
        .setAutoCancel(true)
        .setContentIntent(resultPendingIntent);
mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
    int importance = NotificationManager.IMPORTANCE_HIGH;
    NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
    notificationChannel.enableLights(true);
    assert mNotificationManager != null;
    mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
    mNotificationManager.createNotificationChannel(notificationChannel);
}
assert mNotificationManager != null;
mNotificationManager.notify((int) System.currentTimeMillis() /* Request Code */, mBuilder.build());
currentNotificationStatus = "sent";
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("currentNotificationStatus"  
        "", ""   currentNotificationStatus).apply();
  

Я отправляю две переменные с помощью PendingIntent, т.е. pushNotificationClick и heading, и получаю это в своей деятельности следующим образом.

 notificationClickedStatus = getIntent().getStringExtra("pushNotificationClick");
notificationHeading = getIntent().getStringExtra("heading");
  

Теперь проблема в том, что всякий раз, когда мы получаем 2-3 уведомления, и пользователь нажимает на самое первое уведомление, которое я получил, я все еще получаю заголовок последнего уведомления в моей активности. Раньше это работало совершенно нормально, но теперь я не получаю никакой подсказки.

Комментарии:

1. не allArticles.get(0).getArticleHeading() всегда будет возвращаться заголовок к самой первой статье?

2. @farhanjk Каждый раз, когда я создаю уведомление, значение allArticles.get(0).getArticleHeading() отличается