Android AlarmManager立即触发警报

时间:2014-07-22 18:23:40

标签: android broadcastreceiver alarmmanager

我想在某个固定时间前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;
}

1 个答案:

答案 0 :(得分:0)

时区是个问题。设备使用过去的默认时区,因此立即触发警报。