如何通过检查日期在特定日期发送通知

How to send a notification on specific dates by checking the date

我有一个应用程序,我想在奇数天(例如每月的 1、3、5 天)发送通知。经过研究,我明白我需要一项服务。但是我不知道如何每天获取新日期,或者如何注意到日期发生变化的服务......就像一天的监听器发生了变化......我搜索了很多,只找到参考资料如何在特定日期安排通知,但这不是我需要的,因为我想每天验证日期。非常感谢您的帮助!

您可以在 Android 警报的帮助下完成此操作。

您需要执行的步骤:

  1. 在您需要显示通知的日期和时间启动警报。

  2. 订阅 Reboot Broadcast receiver 并再次设置相同的闹钟(因为您设置的闹钟将在设备重启后消失)

  3. 勾选闹钟后,您可以显示来自闹钟广播接收器的通知,然后设置新的闹钟。

安排警报:

AlarmManager mgr=
    (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(ctxt, ScheduledService.class);
PendingIntent pi=PendingIntent.getService(ctxt, 0, i, 0);

mgr.setRepeating(AlarmManager.ELAPSED_REALTIME,
                 SystemClock.elapsedRealtime() + DIFF_PERIOD, PERIOD, pi);

其中 PERIOD:48 小时,以毫秒为单位

DIFF_PERIOD :离您最近的刻度的时间。也就是说,如果你在第 2 天,你需要在第 3 天触发警报,那么这个值将是:24hrs in millisecond

回答您的评论。

要查找一个月中的第几天,您可以使用以下命令:

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);