2017-11-15 3 views
-1

Ich implementiere ein Widget, das Online-Zugabfahrtszeiten zwischen jeder Minute und jeder Stunde überprüft, abhängig von der Tageszeit. den Dienst aufrufen mitWie man einen AlarmManager-aktivierten Dienst debuggt

manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
     SystemClock.elapsedRealtime() - 10000, 60000, pendingIntent) 

funktioniert gut, aber für das Debuggen würde Ich mag das Intervall auf 10 Sekunden zu reduzieren, die in neueren Versionen von Android kann nicht wegen der 1-Minuten-Grenze durchgeführt werden. Natürlich interessiert mich die Akkulaufzeit im Emulator nicht.

Soweit ich verstehe, ist die Verwendung eines Handlers/Timers keine Option, da die Aufgabe im Vordergrund stehen muss. Ist ein sichtbares Widget "im Vordergrund"? Was ist die empfohlene Vorgehensweise in diesem Fall?

Antwort

0

Sie tatsächlich Aufgaben haben

  • configure die Alarmmanager hinzufügen/entfernen Triggerereignisse über Absichten
  • interpretieren die Ereignisse mit Absichten in einem Service

Wenn Sie beide trennen können Sie einfach Erstellen Sie eine sehr einfache GUI/Aktivität, die dasselbe tut wie der alarmmanager, wenn sie ausgelöst wird und dass Sie debuggen können:

für die alarmmanager-handhabung würde ich die protokollierung in eine textdatei jedes mal implementieren alarmmanager wird hinzugefügt/entfernt/ausgelöst.

Bereiten Sie sich darauf vor, dass neuere Android-Versionen Alarmmanager-Ereignisse verschieben können, um Energie zu sparen, bis das Gerät bereits aktiv ist und Intervalle von weniger als 15 Minuten möglicherweise nicht funktionieren.

Sie können auch on_boot_complete benötigen, um den Alarmmanager nach dem Herunterfahren des Geräts neu zu konfigurieren

Verwandte Themen