установка нескольких локальных уведомлений за 30 минут в зависимости от значения в дБ - PullRequest
0 голосов
/ 09 мая 2018

У меня 3 вопрос , который я много искал, и не смог найти точную или четкую ссылку , поскольку я новичок в программировании на Android.

  1. У меня есть 2 таблицы категории и задачи . Таблица категорий содержит следующие поля

id (int), имя (текст), status (int))

enter image description here

и таблица задач содержит следующие поля

id (int), category_id (Foreign_key ссылается на таблицу категорий), имя (текст), createDate (дата и время) ,ifiedDate (дата и время), DueDate (метка времени)

enter image description here

i должен уведомить пользователя за 30 минут до dueDate (timestamp) , в моем случае n задач не будет в то же время , поэтому я должен показать локальный уведомление для всех задач. как этого добиться?

  1. Как для категории, так и для задачи у меня есть функция редактирования и удаления с опцией контекста. Если я обновлю задачу, локальное уведомление должно измениться соответственно . Как этого добиться?

  2. Нажмите на уведомление, оно должно перенаправить на соответствующую страницу задачи , которая является дочерним действием категории (действие MainActivity или Parent). Как этого добиться?

Примечание. Для этого приложения я использую sqlite локальное хранилище. Одно уведомление не должно переопределять другое уведомление в любом случае.

Надеюсь, этот вопрос поможет многим, если я получу четкий ответ от вас, эксперты.

Спасибо и очень признателен, если кто-нибудь ответит на этот вопрос.

1 Ответ

0 голосов
/ 14 мая 2018
  1. Запустите планировщик с интервалом в 1 минуту и ​​сравните due date с разницей в 30 минут каждую минуту.
  2. При любом совпадении просто создайте уведомление с task_id (из соответствующей строки) какnotification id.
  3. Сохраните все данные, которые вы хотите отобразить на странице задач, в пакете.
  4. Поместите этот пакет в качестве дополнительного в намерение, содержащее действие (страница задачи).
  5. Сохраните это намерение в ожидающем намерении.
  6. Прикрепите этот объект pendingIntent к вашему построителю уведомлений, например mBuilder.setContentIntent(pendingIndent).
  7. Отправьте уведомление.

Каквсе task_id (присвоенные Notification_ID) являются уникальными, поэтому одно уведомление не может переопределить другое уведомление при любой возможности.

Попробовать это будет работать определенно. Спасибо!

...