在特定时间发送通知
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
给出的特定 Hour
和 minute
的通知。但是我卡住了...
非常感谢完整的解决方案...
对于此类任务,使用 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 点。同样对于重复间隔,我选择了一天,因为我的过程需要每天调用。
问我您是否难以理解代码,或者这是否解决了您的问题,将其标记为已接受。谢谢。
我一直在尝试在特定时间发送通知。我得到了用户这样输入的时间:
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
给出的特定 Hour
和 minute
的通知。但是我卡住了...
非常感谢完整的解决方案...
对于此类任务,使用 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 点。同样对于重复间隔,我选择了一天,因为我的过程需要每天调用。 问我您是否难以理解代码,或者这是否解决了您的问题,将其标记为已接受。谢谢。