在特定时间发送通知

Send notification at specific time

我一直在尝试在特定时间发送通知。我得到了用户这样输入的时间:

currentTimeHour = new Time(System.currentTimeMillis()).getHours();
currentTimeMinute = new Time(System.currentTimeMillis()).getMinutes();

TimePickerDialog dialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker timePicker, int i, int i1) {
        hour = i;
        minute = i1;
    }
}, currentTimeHour, currentTimeMinute, false);

现在我想发送有关用户通过 TimePickerDialog 给出的特定 Hourminute 的通知。但是我卡住了...

非常感谢完整的解决方案...

对于此类任务,使用 alarmManager 或 jobScheduler

https://developer.android.com/topic/performance/scheduling.html

每个人都在告诉您使用警报管理器class,但没有提供示例代码。这是我的实现之一。

    AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.HOUR_OF_DAY, 02);
    calendar.set(Calendar.MINUTE, 00);

// setRepeating() lets you specify a precise custom interval--in this case,
// 1 day
    alarmMgr.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis()/1000,
            AlarmManager.INTERVAL_DAY, alarmIntent);

这里需要提供调用intent的时间。在我的代码中,它是每晚凌晨 2 点。同样对于重复间隔,我选择了一天,因为我的过程需要每天调用。 问我您是否难以理解代码,或者这是否解决了您的问题,将其标记为已接受。谢谢。