当前位置 : 主页 > 手机开发 > android >

如果时间比android中的当前系统时间早,则触发警报

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在使用警报管理器在特定时间分配警报.我遇到了一个问题,即如果我将时间设置为早于当前系统时间,则会立即触发警报操作.如何防止这种行为?谢谢 我的代码: AlarmManager alarmMan
我正在使用警报管理器在特定时间分配警报.我遇到了一个问题,即如果我将时间设置为早于当前系统时间,则会立即触发警报操作.如何防止这种行为?谢谢

我的代码:

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    Intent serviceIntent = new Intent(context,AlarmService.class);
    PendingIntent pendingIntent = PendingIntent.getService(context.getApplicationContext(), 234324243, serviceIntent, 0);

/*sample of setting eariler time
timeAlarm.set(Calendar.YEAR, 2013);
timeAlarm.set(Calendar.MONTH, 10);
timeAlarm.set(Calendar.DAY_OF_MONTH, 13);
timeAlarm.set(Calendar.HOUR_OF_DAY, 12);
timeAlarm.set(Calendar.MINUTE, 9);
timeAlarm.set(Calendar.SECOND, 0);
*/
alarmManager.set(AlarmManager.RTC_WAKEUP, timeAlarm.getTimeInMillis(), pendingIntent);
这是因为android报警管理器是由此设计的.
如果时间早于当前系统时间1天或更长时间,则可以修改时间.
像这样:

Calendar c = Calendar.getInstance();        
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, second);

if (c.getTimeInMillis() < System.currentTimeMillis()){
    c.add(Calendar.DAY_OF_MONTH, 1);
}
网友评论