Android - 在特定日期显示通知

时间:2013-06-04 12:51:44

标签: android calendar alarmmanager

我想在特定日期显示通知,并使用Calendar对象:

    Calendar calendar = Calendar.getInstance();
    calendar.set(Year, Month, Day, Hours, Minutes, Seconds);
    long when = calendar.getTimeInMillis();

我使用AlarmManager:

        AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent i = new Intent(this, NotificationsService.class);
    PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
    am.cancel(pi);
    am.set(AlarmManager.RTC_WAKEUP, when, pi);

但如果我使用的话,这并没有显示正确的毫秒数:

am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, pi);

显示正确的通知,但如果我使用标志未显示正确的通知毫秒数。为什么?请有人帮帮我。感谢

修改 :(解决问题)

问题是日历中的月份是实际的前一个月(1月= 0,2月= 1,...)

1 个答案:

答案 0 :(得分:0)

我建议您在此处查看如何在特定日期/时间运行服务的示例:How to run a service every day at noon, and on every boot

你需要记住的一个重要的事情就是警报管理器在电话重启时忘记了所有的值。 Link也为此提供了解决方案。