java - AlarmManager 立即触发警报

标签 java android alarmmanager android-pendingintent

Intent myIntent = new Intent(Alarm.this, Automaton.class);
                  myIntent.putExtra("methodName", "myMethod");
                  myIntent.putExtra("hour", tp.getCurrentHour().toString());
                  myIntent.putExtra("minute", tp.getCurrentMinute().toString());
                  hour = tp.getCurrentHour();
                  minute = tp.getCurrentMinute();
                  PendingIntent pendingIntent = PendingIntent.getActivity(Alarm.this, 0, myIntent,PendingIntent.FLAG_UPDATE_CURRENT);
                  AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
                       Calendar calendar = Calendar.getInstance();
                       calendar.set(calendar.HOUR_OF_DAY, hour);
                       calendar.set(calendar.MINUTE, minute);
                       calendar.set(calendar.SECOND, 0); 
                       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);

上面是我的代码。这是我的问题;我想在指定时间运行的另一个 Activity 中有一个方法。如果用户选择一天中尚未过去的时间(假设您将闹钟设置为上午 10 点到上午 11 点,它将正常工作)。但是,如果您在上午 10 点将闹钟设置为上午 9 点,它将立即触发 Pending Intent。不知道我要去哪里错了。任何帮助将不胜感激!

最佳答案

您可能需要检查设置时间是否小于当前时间。如果设置的时间小于当前时间,则不要为其设置闹钟。因为时间已经过去了,即使你保留它也没有用。

关于java - AlarmManager 立即触发警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661640/

相关文章:

java - SchemaSpy PostgreSQL - 警告 - 连接失败

java - 使用 Ghost4j 获取 NoClassDefFoundError

java - 使用Spring应用事件发布有什么优势?

android - 有可能在通话期间获得拨出通话时长吗?

android - 从解锁屏幕安卓唤醒手机

java - CDH4伪分布式模式下WordCount.java编译错误

android - 工具栏不显示溢出图标

android - 我无法设置闹钟日历

android - AlarmManager 会同时运行同一警报的两个实例吗?

android - 需要有关如何在后台永久运行 Android 服务的代码示例,即使设备处于休眠状态,例如 Whatsapp?