Тайм-аут уведомления Android без использования сервиса

#android #service #notifications

#Android #Обслуживание #уведомления

Вопрос:

Я разрабатываю общую библиотеку (внешний jar), которая предоставляется разным разработчикам приложений для Android.

У меня есть функция, которая будет отображать уведомление.

Я хочу, чтобы тайм-аут уведомления был через 30-90 секунд

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

Безопасно ли создавать поток и сохранять дескриптор для диспетчера уведомлений?

Есть ли лучший способ сделать это?

Комментарии:

1. Я подвергаю сомнению удобство использования этой концепции. Уведомления предназначены для того, чтобы оставаться на месте. Для кратковременной информации есть тосты. Уведомление, срок действия которого истекает, звучит неприятно — я представляю, как мой телефон вибрирует, затем медленно включаю его, пытаюсь нажать на уведомление — и оно исчезает! Поговорим о том, как дразнить пользователя.

2. Они никуда не исчезают, мы хотим изменить текст на глагол прошедшего времени. Поскольку выполняется сетевое подключение, и если они не отвечают на него, мы прерываем соединение. Затем, если они нажмут на уведомление позже, мы снова установим соединение с нашего устройства к ним.

3. Таким образом, вы изменяете уведомление на основе события (в данном случае, прерываете соединение). Почему бы вам просто не изменить уведомление, когда это произойдет, вместо того, чтобы выполнять какое-то колдовство с таймером в уведомлении?

Ответ №1:

Либо позвольте разработчику самостоятельно выполнить удаление / обновление, либо вам придется предоставить какой-то компонент ( Service или BroadcastReceiver для использования с AlarmManager ), чтобы обработать это за них. Как вы заметили, им придется зарегистрировать этот компонент.

Безопасно ли создавать поток и сохранять дескриптор для диспетчера уведомлений?

Не совсем. Если процесс завершается в течение вашего временного окна, ваш поток завершается вместе с ним.