Подтвердить что ты не робот

Уведомление о задержке Android

Я пытаюсь создать оповещение с помощью Android Notification Manager, однако трюк в том, что я хочу, чтобы уведомление появлялось через 30 дней в будущем. В моем коде я делаю это:

Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
long when = System.currentTimeMillis() + (30 * 24 * 3600 * 1000);
Notification notification = new Notification(R.drawable.some_image, "A title", when);
notification.setLatestEventInfo(getApplicationContext(), "You're late", "Some description", contentIntent);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(NOTIFY_ATTEND_ID, notification);

Однако уведомление все еще отображается мгновенно. Из того, что я читал, параметр "когда" для конструктора уведомлений используется только для сортировки уведомлений в StatusBar. Есть ли способ сделать уведомление появляться в будущем дату/время? Заранее спасибо.

4b9b3361

Ответ 1

В любом случае, чтобы уведомление появлялось в будущем/время?

Нет.

Как предполагает Фальмарри, вам нужно будет справиться с этим сами, хотя я не согласен с его подходом. Вам нужно будет использовать AlarmManager. Однако я скептически отношусь к тому, что AlarmManager будет работать в течение 30-дневной продолжительности, хотя вы можете попробовать. Возможно, вам придется использовать AlarmManager для ежедневной/еженедельной задачи, чтобы планировать уведомления дня/недели с помощью отдельных аварийных сигналов. Вам также нужно будет восстановить этот список аварийных сигналов при перезагрузке, так как они протираются, как предполагает Фальмарри.