2017-09-21 7 views
1

Je règle une alarme lorsque l'utilisateur atterrit sur une certaine activité, qui est déclenchée après un certain temps. Comment puis-je vérifier si cette alarme a déjà été déclenchée ou non, afin qu'elle ne soit pas à nouveau définie si l'utilisateur revient à cette activité? Je ne peux empêcher l'alarme se régler à nouveau si elle est déjà prévue, mais pas déclenché avec ceci:Comment déclencher une alarme une seule fois sur Android?

alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_NO_CREATE); 
    if (alarmIntent != null) { 
     // Alarm is already set 
     return; 
    } 
    alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, 0); 

Mais cela ne fonctionne pas si elle est déjà déclenchée, comme l'alarme sera effacée par la suite si alarmIntent sera null

Répondre

2

Vous pouvez utiliser les préférences partagées pour vérifier si elle est définie ou non.

if(!setFlag) 
{ 
    Intent myIntent = new Intent(FirstActivity.this, LogoutService.class); 
    pendingIntent = PendingIntent.getService(FirstActivity.this, 0, myIntent, 0); 
    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.add(Calendar.MINUTE, 10); //Minutes 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
} 
+0

C'est ce que j'ai fait mais j'espérais que l'alarme aurait une solution intégrée –

0

changement PendingIntent PendingIntent.FLAG_CANCEL_CURRENT

alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
0

Vous pouvez simplement créer un fichier la première fois que l'alarme est exécuté, et l'alarme suivante vous pouvez vérifier que Runs le fichier existe déjà et vous ne pas avoir à refaire l'alarme.