уведомления перестают работать после запуска приложения через уведомление - PullRequest
0 голосов
/ 28 мая 2018

Ситуация
Пользователь получает интерактивное уведомление от моего приложения.Если щелкнуть его, оно запустит приложение и перенаправит пользователя на определенный фрагмент в зависимости от данных, с которыми он поставляется.Это работает очень хорошо, пока приложение работает.
Работает на Android 7

Проблема
Если приложение не запущено и затем запускается с помощью уведомления, запуска иредирект работает просто отлично.Но если другое уведомление получено во время работы приложения, оно больше не работает.Единственная функция, которую обеспечивает уведомление, - закрывать ящик уведомлений.Он даже не исчезает после щелчка, как это должно быть.OnCreate или onResume Activity, определенные в Intent, также не вызываются.Кажется, он просто игнорирует все свои настройки и закрывает навигационную панель после нажатия

Код уведомления

private void showNotification(String message, PushEntity.ActionEnum actionEnum, Map<String, String> params) {
 NotificationManager mNotificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE);
 Intent startIntent = new Intent(getApplicationContext(), MainActivity.class);
 if (params != null) {
    for (Map.Entry<String, String> entry : params.entrySet()) {
        startIntent.putExtra(entry.getKey(), entry.getValue());
    }
 }
 PendingIntent contentIntent = PendingIntent.getActivity(this, 0, startIntent, PendingIntent.FLAG_ONE_SHOT);
 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
 .setSmallIcon(R.drawable.ic_default_notification)
 .setContentTitle(getResources().getString(R.string.app_name))
 .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
 .setContentText(message)
 .setDefaults(Notification.DEFAULT_ALL)
 .setPriority(NotificationCompat.PRIORITY_MAX);
 mBuilder.setContentIntent(contentIntent);
 mNotificationManager.notify(pushNotificationId, mBuilder.build());

Что я пытался до сих пор

  • Добавление android:exported="true" записи MainActivity в мой AndroidManifest.xml
  • Добавление флага PendingIntent.FLAG_UPDATE_CURRENT вместо и дополнительно к FLAG_ONE_SHOT

Вопрос
Может кто-нибудь объяснить мне, почему это происходит только после того, как приложение было запущено по уведомлению, но не когда оно уже запущено?
И у кого-нибудь есть идеи, как это может бытьисправлена?

...