这是我的警报管理器代码:
Intent intent=new Intent(getBaseContext(),AlarmReciever.class);
intent.setAction("com.example.projectx.ACTION");
PendingIntent pendingIntent=PendingIntent.getBroadcast(this,12345, intent,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager=(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,targetCal.getTimeInMillis(),pendingIntent);
如果我选择在未来的一小时/分钟触发警报,则该代码效果很好。但是,如果我选择过去的一小时/分钟,当我单击“设置闹钟”时,它会立即启动。
Example:
我的时间选择器始终设置为 24 小时模式。这会是一个问题吗?
谢谢你!
当然可以...它本来就是这样工作的。
Android 识别出时间已经过去,因此即使已经晚了,它也会发出警报。
您可以确保闹钟设置的时间晚于当前时间。
只需计算一下这个差异:
int diff = Calendar.getInstance().getTimeInMilis() - targetCal.getTimeInMillis();
如果 diff 大于 0,则在日历中添加一天 (targetCal)
现在,您设备的时间将为earlier(而不是later)比下一个预定的闹钟时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)