2012-05-22 20 views
5

Ich habe einen BroadcastReceiver im Manifest registriert, der Benachrichtigungen vom AlarmManager empfängt. Das alles funktioniert großartig, während die App läuft, dh. Die onReceive() -Methode wird aufgerufen.BroadcastReceiver, wenn die Anwendung nicht ausgeführt wird

Allerdings, wenn ich zwinge-stop die App, so dass ich testen kann, wenn der broadcastReceiver immer noch Benachrichtigungen von der AlarmManager erhalten, während nicht ausgeführt wird, die onReceive() -Methode wird nie aufgerufen.

Kann der Force-Stop nicht verwendet werden, um den AlarmManager & Empfänger auf diese Weise zu testen? Es scheint einige Antworten darauf zu geben, dass es nicht funktionieren wird, und einige sagen, dass es funktionieren sollte.

Wenn nicht, gibt es eine Möglichkeit, dies zu testen?

Danke.

+0

Haben Sie Ihren 'BroadcastReceiver' im Manifest definiert? –

+0

@jFort: Verwenden Sie einen der "WAKEUP" -Typen für den Alarm? Wenn nicht, dann könnte das der Grund sein, aber ich bin mir nicht sicher. – Squonk

+0

Ja, der Broadcast-Empfänger ist im Manifest definiert. Und der Alarm Manager ist definiert AlarmManager.RTC – jFort

Antwort

3

Wenn Ihr Empfänger in Ihrem Manifest registriert ist, sollte es immer funktionieren. Auch wenn Ihre App geschlossen ist.

Das Problem könnte der Alarm sein. Die Alarme werden möglicherweise gelöscht, sobald die App geschlossen wird.

+0

Danke dafür. Wenn ich es weiß ** sollte ** funktionieren, werde ich weiter auf Fehlersuche gehen. Kann ich herausfinden, was mit diesen Alarmen passiert? – jFort

+0

Ein Absturz bedeutet, etwas Unerwartetes passiert. Daher sollten Sie die Alarme wahrscheinlich neu initialisieren, wenn Sie das Programm wiederherstellen. Ich weiß nicht genau, was mit den Alarmen passiert. Entschuldigung –

+1

Für Android> Version 3.0 wird Ihr Receiver nicht mehr funktionieren, wenn Ihre App geschlossen ist! –

1

Wie Kommentare zu this answer, können Sie diese Art von Sache nicht testen, indem Sie die App selbst töten. Sie müssen eine Ausnahme auslösen, damit die App "natürlich" stirbt.

Verwandte Themen