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

#android #notifications #android-pendingintent

#Android #уведомления #android-pendingintent

Вопрос:

У меня есть какое-то приложение для отправки SMS. Таким образом, каждый раз, когда телефон получает новое сообщение, у него должно быть уведомление, и при нажатии на него запускается действие. Прямо сейчас, при получении 1 сообщения, оно уведомляет, удаляется в строке состояния и не запускает действие. Но при получении 2 или более сообщений первое уведомление не может быть запущено при нажатии, в то время как остальные (2-е, 3-е уведомление …) могут. Ниже приведены мои коды.

 
Intent newIntent = new Intent(context, PreviewActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 0);
newIntent.setAction(strFxPrimaryKey);

Bundle newBundle = intent.getExtras(); newBundle.putInt(GlobalConstants.PRIMARY_ID, Integer.parseInt(strFxPrimaryKey)); newIntent.putExtras(newBundle);

int icon = R.drawable.notification_fx; CharSequence tickerText = context.getString(R.string.fx_received); long when = System.currentTimeMillis();

Notification newNotification = new Notification(icon, tickerText, when); newNotification.flags |= Notification.FLAG_AUTO_CANCEL; //| Notification.FLAG_ONGOING_EVENT;

PendingIntent contentIntent = PendingIntent.getActivity(context, Integer.parseInt(strFxPrimaryKey), newIntent, 0); newNotification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

String newNotificationService = Context.NOTIFICATION_SERVICE; NotificationManager newNotificationManager = (NotificationManager) context.getSystemService(newNotificationService); newNotificationManager.notify(Integer.parseInt(strFxPrimaryKey), newNotification);

context.startActivity(newIntent); context.removeStickyBroadcast(intent);

Основываясь на ответах здесь, в stackoverflow, чтобы создать уникальное намерение, у него должно быть уникальное действие, поэтому я установил первичный ключ в качестве действия. Я также установил код запроса в primary key, чтобы иметь уникальное ожидающее намерение. Чего-то не хватает в моем коде? Спасибо.

Кстати, ОТРЕДАКТИРОВАНО, всякий раз, когда я удаляю context.startActivity (newIntent);, это работает правильно. Кто-нибудь может сказать мне, почему? Спасибо.

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

1. Что именно происходит, когда выбрано первое уведомление?

2. При нажатии на первое уведомление просто удаляется из строки состояния. Я хочу удалить его из строки состояния и запустить действие.