Java 在将来创建/安排android通知 计划/创建未来通知。
所以我已经离开Android开发有相当一段时间了,Android 8.0+之类的东西改变了很多 我以前做的事情和方式不再有效,或者不推荐使用。这让我想问这个问题 如何为将来创建/安排通知? 我曾经使用带有wakefulbroadcastreceiver的alarmservice,只是通过日期/时间选择器为将来安排一个待定的意图。由于我在这方面使用的东西从那时起就被弃用或更改,我想知道: 我现在该怎么做呢 我花了两个下午的时间搜索关于如何安排未来通知的教程,但所有教程都是从我能够使用“旧方法”时开始的,其中一些是我第一次学习时认识到的 我看过关于通知渠道的讨论,以及关于工人日程安排的讨论 有人能帮我指明正确的方向或提供如何构建通知计划程序的链接吗?for alarm manager。。 广播接收机。。Java 在将来创建/安排android通知 计划/创建未来通知。,java,android,push-notification,Java,Android,Push Notification,所以我已经离开Android开发有相当一段时间了,Android 8.0+之类的东西改变了很多 我以前做的事情和方式不再有效,或者不推荐使用。这让我想问这个问题 如何为将来创建/安排通知? 我曾经使用带有wakefulbroadcastreceiver的alarmservice,只是通过日期/时间选择器为将来安排一个待定的意图。由于我在这方面使用的东西从那时起就被弃用或更改,我想知道: 我现在该怎么做呢 我花了两个下午的时间搜索关于如何安排未来通知的教程,但所有教程都是从我能够使用“旧方法”时开
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);
}