警报管理器不会熄灭

时间:2011-10-01 18:51:28

标签: android alarmmanager android-alarms

我正在构建一个警报应用程序。为此,我需要提供一个时间作为输入。我正在尝试关注代码但警报没有触发。我在网上搜索并修改了很多代码,但仍然没有运气。

有人能帮助我吗?提前谢谢。

Intent intent = new Intent(NapAppActivity.this, OnetimeAlarmReceiver.class);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(NapAppActivity.this, 1,  intent, 0);

     Calendar cur_cal = new GregorianCalendar();
    cur_cal.setTimeInMillis(System.currentTimeMillis());

    Calendar cal = new GregorianCalendar();
    cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
    cal.set(Calendar.HOUR_OF_DAY, 12);
    cal.set(Calendar.MINUTE, 17);
    cal.set(Calendar.SECOND, cur_cal.get(Calendar.SECOND));
    cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
    cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
    cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

2 个答案:

答案 0 :(得分:2)

我认为您应该使用cal=Calendar.getInstance()来获取当前日期/时间,而不是使用GregorianCalendar构造函数。

然后,只需设置HourOfDay和Minutes,不要触摸其他字段。

答案 1 :(得分:2)

<receiver android:name=".OnetimeAlarmReceiver" android:process=":remote" />

你有没有在你的清单中宣布接收者。

也在收件人姓名前面加上完整的包裹声明。如果您的Receiver在另一个包中,我使用过“。”在上面的声明...

关心,

Arpit