Отложить уведомление программно на устройствах NON OREO - PullRequest
0 голосов
/ 11 июня 2018

в моем приложении у меня есть служба, которая должна работать в фоновом режиме.Я запустил его в режиме переднего плана, который требует уведомления для работы.Мне нужно реализовать функцию, с помощью которой пользователь может отложить уведомление, связанное с этим сервисом.Я использовал NotificationListenerService, в котором есть метод, называемый snoozeNotification.Но этот метод требует API 26 и работает только на устройствах oreo.Для устройств не Oreo единственное решение, о котором я подумал, - уведомить пользователя, что он может отложить все уведомления приложения из настроек.Но это решение откладывает другие уведомления, которые должны быть видны.У вас есть другое решение?Заранее спасибо.

1 Ответ

0 голосов
/ 11 июня 2018

DeleteIntent: это объект PendingIntent, который может быть связан с уведомлением и срабатывает при удалении уведомления, эфир:

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

 Intent intent = new Intent(this, MyBroadcastReceiver.class);
  PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
  Builder builder = new Notification.Builder(this):
 ..... code for your notification
  builder.setDeleteIntent(pendingIntent);

И в других местах, чтобы прослушивать всякий раз, когда ваше Уведомление было закрыто / удалено.

public class MyBroadcastReceiver extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
             .... code to handle cancel
         }

  }
...