2012-04-20 3 views
0

У меня есть будильник, который я могу запланировать, чтобы уйти в определенное время. Дело в том, что, когда я планирую его в будущее, он работает точно в ту минуту, в которую я его установил. Он работает так, как должен. Но проблема в том, что если я планирую его в прошлом, он сразу же отключается.Android AlarmManager Triggering

Например, если это сейчас 3:30 вечера, и я планирую его в 15:35, он стреляет в 3:35 вечера. Но если это 3:30 вечера, и я планирую его в 15:25, он срабатывает сразу же, поскольку он в прошлом.

Что я хочу, чтобы это сделать, если оно прошло, просто игнорируйте его до тех пор, пока не пройдет промежуток времени.

Вот код:

 Intent intent = new Intent(context, AlarmReceiver.class); 

    PendingIntent sender = PendingIntent.getBroadcast(context,  ApplicationClass.AlertNotifyID, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    long milliSeconds24Hours = 86400000; //86400000 which is 24 hours in milliseconds 
    am.setRepeating(AlarmManager.RTC_WAKEUP, GetNotificationTime(context), milliSeconds24Hours, sender); 
+1

Что вы подразумеваете под «игнорировать его до тех пор, пока не пройдет интервал времени». вы хотите, чтобы вы ушли в это время на следующий день? Если это так, вам придется вручную проверять свою временную метку, и если она есть до текущего времени, вам придется свернуть ее вперед на один день, а затем установить ее с помощью AlarmManager. – FoamyGuy

+0

Я могу это сделать, спасибо – Jesse

ответ

0

Вы должны получить его, чтобы проверить, если назначенное время в прошлом, и если да, установить сигнализацию, чтобы начать на следующий день.