Sobes.tech
Назад к вопросам
Junior — Middle
69

Какими способами можно реализовать обработку пользовательских действий, вызываемых из push-уведомлений?

Ответ от нейросети

sobes.tech AI

Обработка пользовательских действий из push-уведомлений в Android обычно реализуется через PendingIntent, который запускает Activity, Service или BroadcastReceiver при взаимодействии пользователя с уведомлением.

Основные способы:

  • PendingIntent для Activity: при нажатии на уведомление открывается определённый экран приложения.
  • PendingIntent для BroadcastReceiver: позволяет обрабатывать действия (например, кнопки в уведомлении) без открытия UI.
  • Использование Notification Action Buttons: добавление кнопок с отдельными PendingIntent для разных действий.

Пример добавления кнопки действия в уведомление:

Intent snoozeIntent = new Intent(context, SnoozeReceiver.class);
PendingIntent snoozePendingIntent = PendingIntent.getBroadcast(context, 0, snoozeIntent, 0);

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.notification_icon)
    .setContentTitle("Напоминание")
    .setContentText("Пора сделать перерыв")
    .addAction(R.drawable.ic_snooze, "Отложить", snoozePendingIntent);

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
notificationManager.notify(notificationId, builder.build());

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