Автоматическое отключение уведомлений в приложении Android 9 при выполнении действия уведомления - PullRequest
0 голосов
/ 24 мая 2019

У меня есть приложение для Android с работающей функцией, которую я теперь перенес на Android 9 (ранее предназначался для Android 8), что несколько нарушило эту функцию.

У меня есть этот поток (при запуске приложения):

  1. Экран выключен
  2. Что-то происходит, что вызывает уведомление
  3. Экран включен * выполняется действие для уведомления *
  4. Уведомление автоматически исчезает из панели уведомлений

После нацеливания на Android 9 уведомление не исчезает на шаге 4. В результате после выполнения действия я все еще могу нажать на уведомление, и действие происходит снова (нежелательное поведение).

Это изменение поведения кажется недокументированным (предыдущее значение по умолчанию было отклонять уведомление после выполнения действия). Как мне заставить мое приложение работать по-старому?

Вопрос: Как вернуть старое поведение? (уведомление отменяется автоматически, когда действие запускается и пользователь его видит )

Обновление 1: Некоторый (сокращенный / упрощенный) код, который, надеюсь, прояснит, как это работает

public class FooActivity extends AppCompatActivity {
}

public class NotificationUtil {
   // A lot of boilerplate omitted where notification channels are created
   public void notify(Intent startActivity) {  
       ContextProvider.getSystemService(Context.NOTIFICATION_SERVICE).notify("NotificationUtil", 0,  new NotificationCompat.Builder().nextIntent(startActivity).x().y().build());
   }
}

Таким образом, шаг 2 вызывает NotificationUtil.notify () с действием Intent, установленным в FooActivity. FooActivity запускается, как и ожидалось, автоматически при включении экрана (например, уведомление, по моему мнению, неявно «расходуется». Но уведомление остается в панели уведомлений, и можно снова нажать и запустить FooActivity (нежелательное поведение).

Обновление 2 : Вопрос не в как программно отклонить уведомление (на это отвечает Как отклонить уведомление после нажатия действия ), но Скорее , когда , чтобы сделать это так, чтобы уведомление не уменьшалось до тех пор, пока пользователь фактически не посмотрел на него.

Ссылки

  1. https://developer.android.com/about/versions/pie/android-9.0-changes-28
  2. https://developer.android.com/guide/topics/ui/notifiers/notifications
...