2014-08-29 30 views
6

Co się stanie, jeśli dodasz alarm, ale ustaw datę początkową na datę wcześniejszą?Alarm ustawień Androida na wcześniejszą datę

Czy jest wykonywane natychmiast, czy jest umieszczane w kolejce i nigdy nie jest wykonywane?

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, repeatingValue, alarmIntent); 
+3

Spróbuj samodzielnie i przetestuj to bardzo prosto :) – MilapTank

+0

use Użyj 'setInexactRepeating' zamiast' setRepeating' .. –

Odpowiedz

5

Jeśli data minęła, alarm wyłączy się natychmiast. Jednakże można spróbować użyć setInexactRepeating zamiast setRepeating:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startDate, setInexactRepeating , alarmIntent); 

Z setInexactRepeating() docs:

Wykazie powtarzający się alarm, który ma kod nie w pełni wymagania czasowe wyzwalania; na przykład alarm, który powtarza się co godzinę, ale niekoniecznie pod adresem u góry każdej godziny.

0

myślę, że alarm jest ustawiony tylko przez kilka godzin (co najmniej przez Android User Interface), a nie do konkretnego dnia, w ten sposób będzie ona rozpocząć od dokładnego hour:minute można ustawić.

7

Od documentation, jeśli czas rozpoczęcia jest już za wcześnie, alarm zostanie natychmiast wyzwolony.

0

Jak mogę wywnioskować z mojego poprzedniego doświadczenia z AlarmManager. Data z przeszłości wywoła natychmiast alarm.

1

Aktualnie program AlarmManager działa z bieżącym czasem. Więc kiedy będzie ustawiony przeszłości datę alarmu następnie AlarmManager wykona

public void onReceive(Context context, Intent intent) 
{ 
} 

metody.

0

O ile mogę stwierdzić, AlarmManager.set zostanie wykonany teraz, gdy czas jest ustawiony na czas przeszły, dokumentacja mówi tak samo. Brakuje tego zdania dla AlarmManager.setInexactRepeating, ten alarm nie zostanie uruchomiony, gdy zostanie ustawiony na czas przeszły, wyzwoli się w następnym interwale, zaczynając od podanego czasu.

0

AlarmManager.set i AlarmManager.setInexactRepeating wywołują setImpl, z triggertime przekazanym jako parametr (zaznaczone w źródłach Androida 7.1.2). -> nie ma różnicy w obu metodach, jeśli triggertime jest w przeszłości.