2010-10-23 2 views
3

Можно создать дубликат:
Why is my android alarm manager firing instantly?установить время в менеджер Alarm 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, час); cal.add (Calendar.MINUTE, мин); // час будет, например, 5, а минут будет 30, но он тоже не работает! –

+0

, тогда покажите код, в котором вы устанавливаете переменную hour и min – RoflcoptrException