Broadcast Receiver перезаписывает предыдущие уведомления - PullRequest
0 голосов
/ 04 ноября 2019

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

public class MyBroadCastReceiver  extends BroadcastReceiver {

    String TAG="onReceiveBroadcasst";

    public  MyBroadCastReceiver() {

    }

    Context context;
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "onReceive: "+constants.notification);
        this.context=context;
        notification_maker("Running Late.","Hurry Up, Time to leave.",BitmapFactory.decodeResource(context.getResources(), R.drawable.late));
        notification_maker("Forecast.","Today's foreacast",BitmapFactory.decodeResource(context.getResources(), R.drawable.late));
        notification_maker("Notification.","Hurry Up, Time to leave.",BitmapFactory.decodeResource(context.getResources(), R.drawable.late));

        city=new PrefManager(context).getStringPref("City",city);
    }


    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    public  void notification_maker(String Title,String notification,Bitmap bitmap) {
        Bitmap icon1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.cloudy);
        NotificationCompat.BigPictureStyle bigPicture = new NotificationCompat.BigPictureStyle();
        bigPicture.bigPicture(icon1);

        ToneGenerator toneGenerator = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100);
        toneGenerator.startTone(ToneGenerator.TONE_PROP_BEEP, 1000);
        Notification notif = new Notification.Builder(context)
                .setContentTitle(Title)
                .setContentText(notification)
                .setSmallIcon(R.drawable.cloudy)
                .setLargeIcon(bitmap)
                .setStyle(new Notification.BigTextStyle().bigText(notification)
                        )
                .build();
        NotificationManager notificationManager=(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(2,notif);
        Log.i(TAG, Title+"notification_maker: "+notification);
    }
}

Следующий код будет отображать только последнее уведомление, журналы приложений имеют журналдругих уведомлений, вызываемых успешно, как этого избежать?

1 Ответ

0 голосов
/ 04 ноября 2019

Старые уведомления перезаписываются, потому что вы используете один и тот же идентификатор для всех них:

notificationManager.notify(2,notif);

Используйте разные идентификаторы для дифференциации уведомлений (т.е. не используйте 2 для всех вашихуведомления)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...