#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() отличается