2010-11-22 9 views
0

J'ai un exemple de travail d'un service qui est notifié à partir d'un objet gestionnaire d'alarme, l'intervalle change en fonction des préférences de l'utilisateur, cela fonctionne bien lorsque l'intervalle est 5-10-20-30 minutes, mais Lorsque je programme une alarme pendant une heure, mon service n'est jamais averti. Y a-t-il un bug connu à ce sujet? l'alarme ne devrait-elle pas avertir mon service?android gestionnaire d'alarme long intervalle

+0

quelqu'un? c'est vraiment bizarre! – maxsap

+1

Vous devrez nous montrer votre code. Il ne devrait y avoir rien de fondamentalement différent à propos des intervalles plus longs. – Falmarri

Répondre

0

Ma seule suggestion est de m'assurer que vous représentez 1 heure comme 3 600 000 millisecondes.

J'utilise ce qui suit dans ma méthode pour régler mon alarme toutes les 15 minutes du début de l'heure à partir de 00:00 le même jour plutôt que lorsque l'alarme est créée.

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

Plutôt que d'attendre une heure entière pour tester, je viens de mettre HOUR_OF_DAY et MINUTE pour montrer environ 55 minutes « il y a » de sorte qu'il irait à l'intervalle prévu. Tout a été réussi quand j'ai testé.

+0

,,,, comment puis-je annuler aumomatically alrm après 1 heure ....? –

2

Vérifiez la AlarmManagerdocumentation, il y a une constante INTERVAL_HOUR qui serait préférable d'utiliser dans ce cas.