在Android警报管理器中设置时间-立即触发警报[重复]
Posted
技术标签:
【中文标题】在Android警报管理器中设置时间-立即触发警报[重复]【英文标题】:set the time in Alarm manager Android - alarm fired instantly [duplicate] 【发布时间】:2010-10-23 12:11:24 【问题描述】:可能重复:Why is my android alarm manager firing instantly?
我有这段代码会调用警报通知
public static Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.add(Calendar.HOUR_OF_DAY,hour);
cal.add(Calendar.MINUTE, min);
Intent intent = new Intent(this, OnetimeAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent,0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis() , pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
但是警报会立即触发,它不会在给定的小时和分钟后等待? 我应该在清单文件中添加任何内容吗?
【问题讨论】:
【参考方案1】:您使用当前时间来设置闹钟。所以它会立即触发。
检查 API。 http://developer.android.com/reference/android/app/AlarmManager.html#set%28int,%20long,%20android.app.PendingIntent%29
在那里,您将闹钟响起的时间作为第二个参数传递。在您的情况下,这是实际时间。所以你应该把你想要等待的时间加到你现在传递方法的时间上。
【讨论】:
我希望它在“小时”和“分钟”之后触发,如您所见 cal.add(Calendar.HOUR_OF_DAY,hour); cal.add(日历.分钟,分钟); // 小时将是例如 5 分钟将是 30 ,但它也不起作用! 然后显示设置小时和分钟变量的代码以上是关于在Android警报管理器中设置时间-立即触发警报[重复]的主要内容,如果未能解决你的问题,请参考以下文章