Я новичок с уведомлениями, поэтому, пожалуйста, не будьте строги ...Намерение от уведомления является недействительным
Я получаю сообщение от ТСМ, и сделать уведомление:
int requestID = (int) System.currentTimeMillis();
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra(ConstantsUtil.Firebase.TOPIC_UPDATE, ConstantsUtil.Firebase.TOPIC_UPDATE);
intent.setAction(ConstantsUtil.Firebase.TOPIC_UPDATE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, requestID, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(false)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(requestID, notificationBuilder.build());
Если приложение работает когда устройство получает уведомление - оно отлично работает, открывают новую активность, и я могу получитьExtras и getAction.
Но если приложение закрыто и получено уведомление, а затем пользователь нажимает на него - чем открытие нового действия, но намерение.getExtraString равно null, то же самое с getAction.
Как я могу получитьAction и getExtras из уведомления Намерение, когда приложение закрыто?
Как вы отправляете уведомление? –
делает это метр? с системой сообщений firebase –
Да, это имеет значение, тип отправленного сообщения (уведомление или сообщение данных) может быть определен методом отправки. Например: если вы отправляете с консоли Firebase, сообщение всегда будет уведомляющим сообщением, которое может потребовать, чтобы сообщение обрабатывалось определенными способами. –