Java 在将来创建/安排android通知 计划/创建未来通知。

Java 在将来创建/安排android通知 计划/创建未来通知。,java,android,push-notification,Java,Android,Push Notification,所以我已经离开Android开发有相当一段时间了,Android 8.0+之类的东西改变了很多 我以前做的事情和方式不再有效,或者不推荐使用。这让我想问这个问题 如何为将来创建/安排通知? 我曾经使用带有wakefulbroadcastreceiver的alarmservice,只是通过日期/时间选择器为将来安排一个待定的意图。由于我在这方面使用的东西从那时起就被弃用或更改,我想知道: 我现在该怎么做呢 我花了两个下午的时间搜索关于如何安排未来通知的教程,但所有教程都是从我能够使用“旧方法”时开

所以我已经离开Android开发有相当一段时间了,Android 8.0+之类的东西改变了很多

我以前做的事情和方式不再有效,或者不推荐使用。这让我想问这个问题

如何为将来创建/安排通知? 我曾经使用带有wakefulbroadcastreceiver的alarmservice,只是通过日期/时间选择器为将来安排一个待定的意图。由于我在这方面使用的东西从那时起就被弃用或更改,我想知道:

我现在该怎么做呢

我花了两个下午的时间搜索关于如何安排未来通知的教程,但所有教程都是从我能够使用“旧方法”时开始的,其中一些是我第一次学习时认识到的

我看过关于通知渠道的讨论,以及关于工人日程安排的讨论

有人能帮我指明正确的方向或提供如何构建通知计划程序的链接吗?

for alarm manager。。 广播接收机。。
Date date = new Date();

            Calendar cal_now = Calendar.getInstance();
            cal_now.setTimeInMillis(System.currentTimeMillis());

            Calendar cal_alarm = Calendar.getInstance();
            cal_alarm.setTimeInMillis(System.currentTimeMillis());

            cal_now.setTime(date);
            cal_alarm.setTime(date);


cal_alarm.set(Calendar.HOUR_OF_DAY, your_hour);
            cal_alarm.set(Calendar.MINUTE, your_minute);
            cal_alarm.set(Calendar.SECOND, 0);
            cal_alarm.set(Calendar.MILLISECOND, 0);

            if (am_pmFormatOne.equals("AM")) {
                cal_alarm.set(Calendar.AM_PM, 0); // 0 = AM
            } else {
                cal_alarm.set(Calendar.AM_PM, 1); // 1 = PM
            }


if (cal_alarm.before(cal_now)) {
                    log.error("Today's time is passed, set alarm for tomorrow..");
                    cal_alarm.add(Calendar.DATE, 1);// Today's time is passed, set alarm for tomorrow..
                }


Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), randomAlarmId, intent, 0);
        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
@Override
    public void onReceive(Context context, Intent intent) {

Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
        assert v != null;
        v.vibrate(5000);
}