Hallo zusammen
Mein erster Post und direkt eine Frage
Ich habe eine kleine Anwendung die abhängig vom aktuellen Standort, an jedem point of interest, einige Einträge erstellt und speichert.
Dazu wird alle 15 Minuten ein Service erstellt (wenn er eben nicht schon existiert). Dieser Service liest die Points of interest aus der Datenbank aus und fügt sie mittels
hinzu. Bestehende Einträge werden (wenn ich das richtig verstanden habe) durch das Flag im PendingIntent
PendingIntent proximityIntent = PendingIntent.getBroadcast(this, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT)
überschrieben.
Sollte ich mich an einem Point of interest befinden und die Einträge wurden in der Datenbank erstellt, beende ich den Service. Er wird ja sowieso 15 Minuten später wieder erstellt.
Soweit so gut. Nun zu den Problemen:
Wenn ich mich länger an einem Point of interest aufhalte, werden mehrere Einträge erstellt. Das ist logisch, da ich den Service beende und er sich nach einem neustart denkt das ich an dieser Steller noch nicht war. Außerdem werde ich immer nur "eingebucht", nie "ausgebucht". Die Ursache dürfte die gleiche sein. Wenn ich den Service aber dauerhaft laufen lasse, habe ich etwas angst um meinen Akku.
Habt ihr eventuell eine Idee wie ich mit dem Problem umgehen kann?
Meine Randbedingung sind: Die Erfassung sollte auf maximal 15 Minuten genau sein und der Akku sollte nicht zu sehr belastet werden.
Daher kam die Idee mit dem Beenden des Service bei erfolgreicher Buchung. Später käme noch ein Timeout hinzu aber... solange das nicht mal vernünftig läuft...
Gibt es dort eine Art "Pattern" welches sich in diesem Bereich etabliert hat o.Ä.?
Vielen Dank schon mal im Voraus!