2010-11-22 18 views
0

Ich habe ein funktionierendes Beispiel für einen Dienst, der von einem Alarm-Manager-Objekt benachrichtigt wird, ändert sich das Intervall nach den Vorlieben des Benutzers, das funktioniert gut, wenn das Intervall 5-10-20-30 Minuten ist Wenn ich einen Alarm für eine Stunde einplane, wird mein Service nie benachrichtigt. Gibt es einen bekannten Bug? sollte nicht der Alarm meinen Dienst benachrichtigen?android alarm manager lange intervall

+0

jemand? das ist wirklich komisch! – maxsap

+1

Sie müssen uns Ihren Code zeigen. An längeren Intervallen sollte nichts von Natur aus anders sein. – Falmarri

Antwort

0

Mein einziger Vorschlag ist, sicherzustellen, dass Sie 1 Stunde als 3.600.000 Millisekunden darstellen.

In meiner Methode verwende ich Folgendes, um meinen Alarm alle 15 Minuten von Beginn der Stunde an, beginnend um 00:00 Uhr am selben Tag und nicht bei der Erstellung des Alarms, einzustellen.

// Set (or get) long time 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 0); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0); 
calendar.set(Calendar.MILLISECOND, 0); 
long START_TIME = calendar.getTimeInMillis(); 

// Variables 
int LONG_INTERVAL = 15; // in minutes 

// Set the repeating alarm 
aManager.setRepeating(AlarmManager.RTC_WAKEUP, START_TIME, LONG_INTERVAL * 60000, sender); 

Anstatt eine ganze Stunde warten, um zu testen, ich HOUR_OF_DAY und MINUTE nur auf „vor“ in etwa 55 Minuten zu zeigen, so dass es am nächsten erwarteten Intervall laufen würde. Alles war erfolgreich, als ich getestet habe.

+0

,,,, Wie kann ich aumomatisch alrm nach 1 Stunde abbrechen ....? –

2

Überprüfen Sie die AlarmManagerdocumentation, gibt es eine Konstante, die in diesem Fall besser zu verwenden wäre.

Verwandte Themen