AlarmManager - einfache Frage

  • Antworten:6
Gelöschter Account
  • Forum-Beiträge: 2.492

04.11.2014, 17:14:07 via Website

Hallo,

ich habe eine Frage bzgl. des AlarmManagers. Und zwar starte ich bei verschiedenen Aktionen einen Alarm. Und zwar immer den "selben" nur mit einem anderen Intervall.
Bisher habe ich es so gemacht, dass ich dann den alten "gecanceled" hab und dann einen neuen gestartet habe:

                service = new Intent(this, Service.class);
                pintent = PendingIntent.getService(getApplicationContext(), 0, service, 0);
                alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
                alarm.cancel(pintent);
                alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, 0, dauerLinks, pintent);

Jetzt hab ich mich gefragt, ob das überhaupt notwendig ist und ich nicht einfach nur

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, 0, dauerLinks, pintent);

schreiben kann und dann wird der alte Alarm überschrieben.
Jetzt habe ich gelesen, dass dafür der pengingIntent inklusive

action, data, type, class, and categories Quelle

gleich sein müssen. Das wäre bei mir doch der Fall und ich müsste den Alarm nicht immer cancelen oder?
Auch wenn ich dann folgenden Alarm starten würde:

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, 0, dauerRECHTS, pintent);

das ist ja eigentlich nur ein anderer Integer.

— geändert am 04.11.2014, 17:52:30

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

04.11.2014, 17:19:04 via Website

Nach deinen angaben schon, hast du es mal gestestet?
Sonst lasse es doch einfach so stärt doch nicht oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

04.11.2014, 17:52:08 via Website

Ja also bei dem kurzen Test jetzt funktioniert es. Danke :)
Nur habe ich die Tage (als ich noch mit cancel und so weiter gearbeitet habe) das Problem gehabt, dass nach einem Tag oder so der Alarm auf einmal nicht mehr lief. Kann das vorkommen? Oder hab ich da irgendwo n falsches cancel gesetzt und das Problem sollte jetzt behoben sein.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

04.11.2014, 17:53:34 via Website

Das kann ich dir nicht sagen, da musst du wohl einen neuen Test starten.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

04.11.2014, 17:56:59 via Website

Okay dann mach ich das mal.
Als letztes noch eine Frage zum ELAPSED_REALTIME und ELAPSED_REALTIME_WAKEUP. Das wakeup soll ja laut Doku das Gerät "aufwecken". Bedeutet das, dass dann der Bildschirm angeht? In meinem Fall ist das nämlich nicht passiert. Ich merke keinen Unterschied zwischen ELAPSED_REALTIME und ELAPSED_REALTIME_WAKEUP.

— geändert am 04.11.2014, 18:16:25

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

04.11.2014, 18:03:11 via Website

ELAPSED_REALTIME_WAKUP da es in der Docu steht, wird es wohl stimmen..
Kann aber sein, dass es die Permission WakeLock oder so ähnlich benötigt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

04.11.2014, 18:16:49 via Website

Hatte ich auch schon mit der Permission ausprobiert. Komisch:?

Antworten