2010-10-23 126 views
3

可能重复:
Why is my android alarm manager firing instantly?设置时间报警经理的Android - 报警立即解雇

我有这样的代码,将调用报警通知

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(); 

但警报立刻被触发,它在给定的小时和分钟后等待吗? 应该向清单文件添加任何内容吗?

回答

3

您使用当前时间来设置闹钟。所以它立即着火。

检查API。 http://developer.android.com/reference/android/app/AlarmManager.html#set%28int,%20long,%20android.app.PendingIntent%29

在那里您可以通过警报发生的时间作为第二个参数。在你的情况下,这是实际的时间。所以你应该把你想要等待的时间加到你现在传入方法的时间。

+0

我希望它在“小时”和“分钟”之后被解雇,你可以看到cal.add(Calendar.HOUR_OF_DAY,hour); cal.add(Calendar.MINUTE,min); //小时将是例如5分钟将是30,但它不工作! – 2010-10-23 18:45:08

+0

然后显示您设置小时和分钟变量的代码 – RoflcoptrException 2010-10-24 10:25:53