#android #service #notifications
#Android #Обслуживание #уведомления
Вопрос:
Я разрабатываю общую библиотеку (внешний jar), которая предоставляется разным разработчикам приложений для Android.
У меня есть функция, которая будет отображать уведомление.
Я хочу, чтобы тайм-аут уведомления был через 30-90 секунд
Я хочу минимизировать требования к разработчикам приложений, поэтому написание общего сервиса и добавление его в свои манифесты — мой наименее любимый вариант.
Безопасно ли создавать поток и сохранять дескриптор для диспетчера уведомлений?
Есть ли лучший способ сделать это?
Комментарии:
1. Я подвергаю сомнению удобство использования этой концепции. Уведомления предназначены для того, чтобы оставаться на месте. Для кратковременной информации есть тосты. Уведомление, срок действия которого истекает, звучит неприятно — я представляю, как мой телефон вибрирует, затем медленно включаю его, пытаюсь нажать на уведомление — и оно исчезает! Поговорим о том, как дразнить пользователя.
2. Они никуда не исчезают, мы хотим изменить текст на глагол прошедшего времени. Поскольку выполняется сетевое подключение, и если они не отвечают на него, мы прерываем соединение. Затем, если они нажмут на уведомление позже, мы снова установим соединение с нашего устройства к ним.
3. Таким образом, вы изменяете уведомление на основе события (в данном случае, прерываете соединение). Почему бы вам просто не изменить уведомление, когда это произойдет, вместо того, чтобы выполнять какое-то колдовство с таймером в уведомлении?
Ответ №1:
Либо позвольте разработчику самостоятельно выполнить удаление / обновление, либо вам придется предоставить какой-то компонент ( Service
или BroadcastReceiver
для использования с AlarmManager
), чтобы обработать это за них. Как вы заметили, им придется зарегистрировать этот компонент.
Безопасно ли создавать поток и сохранять дескриптор для диспетчера уведомлений?
Не совсем. Если процесс завершается в течение вашего временного окна, ваш поток завершается вместе с ним.