带有标志AlarmManager.INTERVAL_DAY的AlarmManager在当天执行,而不是在第二天执行

时间:2015-05-19 12:56:34

标签: android push-notification alarmmanager android-alarms

我需要在Android应用程序中添加推送通知。必须在特定时间(例如下午1点)每天显示通知。要做到这一点,我使用的是AlarmManager。当应用程序第一次启动时,我正在注册警报。但我遇到了问题。 如果我将我的应用程序安装到设备上,例如在下午1点10分,那么警报就会在我的应用程序启动后立即运行。但这是错误的,因为我需要在第二天运行此警报,而不是在当天。任何人都可以帮助我并告诉我们如何设置每日警报,该警报必须从当天开始工作。

这是我的代码,我现在正在使用

false

2 个答案:

答案 0 :(得分:3)

如果当前日期已经过去,它会执行执行警报的代码。这需要处理。我按照以下方式做到了

use Session;
use Request;
use Input;

答案 1 :(得分:1)

Calendar calendar = Calendar.getInstance();
                        calendar.setTimeInMillis(System.currentTimeMillis());
                        calendar.set(Calendar.HOUR_OF_DAY, mytesthourofday);
                        calendar.set(Calendar.MINUTE,
                                Integer.parseInt(min_am_pm[0]));
                        // calendar.set(Calendar.AM_PM, am_pm_integer);
                        calendar.set(Calendar.SECOND, 0);
                        calendar.set(Calendar.MILLISECOND, 0);

                        if (calendar.getTimeInMillis() < System.currentTimeMillis()) {
                            calendar.add(Calendar.DAY_OF_MONTH, 1);
                        }

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), 1000 * 24 * 60 * 60,
                            pendingIntent);