андроид все уведомления исчезли при открытии приложения - PullRequest
0 голосов
/ 29 марта 2019

Я использую FCM для получения нового уведомления, которое я могу показать без проблем, но когда я открываю приложение, все мои уведомления исчезли

это мой код для создания нового уведомления

 final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                mContext,mContext.getString(R.string.default_notification_channel_id));

Notification notification;
        notification = mBuilder.setSmallIcon(icon).setTicker(title).setWhen(0)
                .setAutoCancel(true)
                .setContentTitle(title)
                .setContentIntent(resultPendingIntent)
                .setStyle(inboxStyle)
                .setWhen(getTimeMilliSec(timeStamp))
                .setSmallIcon(R.drawable.notification_icon)
                .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), icon))
                .setContentText(message)
                .build();

NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {



            CharSequence name = "my_channel";
            String Description = "This is my channel";
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel mChannel = new NotificationChannel(mContext.getString(R.string.default_notification_channel_id), name, importance);
            mChannel.setDescription(Description);
            mChannel.enableLights(true);
            mChannel.setLightColor(Color.RED);
            mChannel.enableVibration(true);
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            mChannel.setShowBadge(false);
            notificationManager.createNotificationChannel(mChannel);
        }


        int id = (int) System.currentTimeMillis();
        notificationManager.notify(id, notification);

при нажатии на уведомление открывается действие с дополнительными данными в мое намерение

 Intent resultIntent = new Intent(getApplicationContext(), MainActivity.class); 
 resultIntent.putExtra("message", "wwwwwwww");
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);


resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);



PendingIntent resultPendingIntent =
                PendingIntent.getActivity(
                        mContext,
                        0,
                        intent,
                        PendingIntent.FLAG_UPDATE_CURRENT
                );

Теперь, когда я нажимаю на любое уведомление, открывается MainActivity с дополнительным значением, от которого зависит основное действие.

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

Ответы [ 2 ]

1 голос
/ 29 марта 2019

не совсем уверен, будет ли это работать или нет, но вы можете попробовать установить уникальный код запроса вместо 0.

PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);

заменить 0 следующим

PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext,(int) System.currentTimeMillis(),intent,PendingIntent.FLAG_UPDATE_CURRENT);
0 голосов
/ 29 марта 2019

попробуйте

**.setPriority(NotificationManager.IMPORTANCE_HIGH)**
Notification notification;
        notification = mBuilder.setSmallIcon(icon).setTicker(title).setWhen(0)
                .setAutoCancel(true)
                .setContentTitle(title)
                .setContentIntent(resultPendingIntent)
                .setSound(alarmSound)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setWhen(getTimeMilliSec(timeStamp))
                .setSmallIcon(ICON)
                .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), icon))
                .setContentText(message)
                .setDefaults(Notification.DEFAULT_ALL)
                .setPriority(NotificationManager.IMPORTANCE_HIGH)
                .build();
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(num, notification);
...