我想在某个固定时间前15分钟安排闹钟。但是我的警报会在设置后立即触发,而不是在触发时触发。设定的时间不是过去的。我通过将alarmTime转换为日期来验证alarmTime并且它是正确的。我的BroadcastReceiver
也已正确注册(AndroidManifest.xml
)。
有什么建议吗?
以下是我的代码:
setAlarm(long fixedTime){
final int beforeTime = 15*60; // 15 min before
final Long alarmTime = (fixedTime - beforeTime)*1000L;
final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, alarmTime, getIntent());
}
private PendingIntent getIntent(){
final Intent intent = new Intent(context, MyReceiver.class);
final PendingIntent pi = PendingIntent.getBroadcast(context, 22714, intent, PendingIntent.FLAG_CANCEL_CURRENT);
return pi;
}
答案 0 :(得分:0)
时区是个问题。设备使用过去的默认时区,因此立即触发警报。