Alarm + Gerät aus/Akku leer

T

The_S

Fortgeschrittenes Mitglied
10
Hallo,

Ich setzte über den AlarmManager einen Alarm:

Code:
PendingIntent sender = // initialisieren und so
AlarmManager am = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, nextAlarmTime, sender);

Mein AlarmReceiver (definiert im Intent) startet dann einen Service (der u. a. ein paar Sensoren registriert und über einen Handler in einem separierten Runnable ein bisschen wartet):

Code:
public class AlarmReceiver extends BroadcastReceiver{

	@Override
	public void onReceive(Context c, Intent in) {
		Intent nin=new Intent(c,AlarmService.class);
		nin.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        c.startService(nin); 
	}
}

1. Frage: Ist das so der korrekte Weg? Mach ich (als Anfänger) etwas falsch/zu kompliziert/umständlich?
2. Wenn das Gerät ausgeschalten ist, sorgt ja RTC_WAKEUP dafür, dass das Gerät eingeschalten wird. Der Alarm läuft dann ganz normal ab, auch wenn der Benutzer einen PIN zur Aktivierung der SIM-Karte eingeben müsste (ich mache im Service keine Dinge, für die eine SIM-Karte benötigt werden würde). Ist das soweit korrekt?
3. Was geschieht, wenn der Akku leer oder schwach ist (also während der onReceive-Methode der Akku ausgeht)? Wird dann der Alarm beim nächsten Start des Handys aufgerufen? Hab ich irgendwie eine Möglichkeit darauf zu reagieren?

Danke und Grüße
Stefan
 
2. Wenn das Gerät ausgeschalten ist, sorgt ja RTC_WAKEUP dafür, dass das Gerät eingeschalten wird. Der Alarm läuft dann ganz normal ab, auch wenn der Benutzer einen PIN zur Aktivierung der SIM-Karte eingeben müsste (ich mache im Service keine Dinge, für die eine SIM-Karte benötigt werden würde). Ist das soweit korrekt?

Nur wenn das Gerät im Standby ist. Wenn es ganz ausgeschaltet ist, kann es nicht automatisch einschalten.
 
Schade, aber danke für die Info. Was passiert dann mit einem Alarm während das Gerät ausgeschalten ist? Bzw. bekomme ich irgendwie mit, wenn das Handy wieder eingeschalten wurde und ein Alarm dadurch verschlafen wurde?
 
The_S schrieb:
Schade, aber danke für die Info. Was passiert dann mit einem Alarm während das Gerät ausgeschalten ist? Bzw. bekomme ich irgendwie mit, wenn das Handy wieder eingeschalten wurde und ein Alarm dadurch verschlafen wurde?

probier's doch einfach!
 
Dadurch seh ich, dass der Alarm beim Start nicht ausgeführt wurde. Aber das zeigt mir nicht, ob es eine Möglichkeit gibt beim Gerätestart bspw. auf verpasste Alarme zu prüfen.

Was hab ich da für Möglichkeiten?

Danke!
 
Achso... du musst noch auf den Boot completed Broadcast hören und dort deinen Alarm neu setzen.
 
Aber eine Möglichkeit nach dem Neustart zu erfahren, welche Alarme explizit nicht ausgeführt wurden gibt es nicht?
 
Nach dem booten sind immer alle Alarme weg. Alle Wecker Appeninen müssen also nach einem Neustart ihre Alarme neu setzen. Das macht auch der bei Androud enthaltene Wecker so...
 
Alle Alarme sind weg? Also generell alle? Oder wurden nur die übersprungen, die in die Zeit gefallen sind, in der das Handy aus war?
 
Speicher doch einfach den Timestamp sobald dein Code durchgelaufen ist.

Beim nächsten Durchlauf kannst ja auswerten wann der vorherige Durchlauf war.
 
Ja, das wie ist kein Problem. Wollte nur wissen ob ich das nicht irgendwie mitbekommen könnte. Aber so gehts natürlich auch. Besten Dank für die Antwort :)
 

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
999
Robby1950
R
G
Antworten
8
Aufrufe
1.188
gnome2012
G
B
Antworten
6
Aufrufe
1.046
jogimuc
J
Zurück
Oben Unten