2016-06-24 9 views
0

setRepeating Methode weiter auf Alaram Repeating aber ich möchte nach 10 mal aufhören, wo sollte ich das schließen.Stop alram Manager nach 10 mal

unten Code repeting meine alaram

  alarammanager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
       1000 * 60 * 30, pendingIntent); 
+0

Sie können eine statische Variable als alarmCounter nehmen und sie jedes Mal um eins erhöhen und auf 10 stoppen, um den wiederholten Alarm einzustellen – Vickyexpert

Antwort

0

Zuerst initialisieren Sie eine Variable, die die Anzahl von Malen zu zählen. Jedesmal Ihre Alarmwiederholung, erhöhen sie (1), bis diese Variable gleich 10 finden Sie in diesem folgende:

Anruf abbrechen() auf Alarmmanager mit einem äquivalenten PendingIntent dem von Ihnen mit setRepeating verwendet()

Intent i = new Intent(this, AlarmReceive.class); 
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); 
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.cancel(pi); 
+0

Vielen Dank für Ihre Antworten. Ich habe nicht verstanden, was du genau sagst. Meinst du das für (int inc = 0; inc <10; inC++) {alarammmanager.setRepeating (AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 30, pendingIntent)); } –

+0

Nein, bitte lesen Sie diesen Artikel sorgfältig zum Beispiel: http://stacktips.com/tutorials/android/repeat-alarm-example-in-android Sie erstellen eine statische Variable, und Count up (Schritt um 1) Diese Variable in der onReceive() - Methode überprüft diese Variable auch, wenn sie gleich 10 ist, und ruft dann eine Methode auf, um Ihren Alarm abzubrechen (diese Methode wird in der Klasse deklariert, in der Sie Ihren Alarm starten) – alway5dotcom

0

Initialisieren Sie in gemeinsam genutzten Einstellungen eine Ganzzahl mit dem Wert 0. Erhöhen Sie den Wert in der Benachrichtigungsempfängerklasse. Wenn der Wert gleich 10 ist, brechen Sie den Alarm ab, andernfalls speichern Sie den aktualisierten Wert unter Gemeinsame Einstellungen