Android - Warum ausstehende Absichten für Geofences verwenden

7

Ich habe gerade das Tutorial für Geofencing auf Android beendet ( Ссылка ) und ich frage mich, warum der 'Callback 'für Geofences sind über ausstehende Absichten und nicht eine einfache Callback-Schnittstelle.

Wenn in einer Aktivität implementiert, würde man normalerweise den Standort-Client in onPause() sowieso trennen, damit zuvor hinzugefügte Geofences nicht verfolgt werden, nachdem die Anwendung angehalten / zerstört wurde. Warum also eine ausstehende Absicht? Oder irre ich mich hier?

    
Flo 19.05.2013, 02:36
quelle

2 Antworten

18
  

Ich frage mich, warum der 'Rückruf' für Geofences über ausstehende Absichten und nicht eine einfache Callback-Schnittstelle erfolgt.

Vor allem, weil Geofences so konzipiert sind, dass sie auch ohne laufende Anwendung funktionieren.

  

Wenn in einer Aktivität implementiert, würde man normalerweise den Standort-Client in onPause () sowieso trennen, so dass zuvor hinzugefügte Geofences nicht verfolgt werden würden, nachdem die Anwendung pausiert / zerstört wurde, also warum eine ausstehende Absicht? Oder irre ich mich hier?

Ich glaube, dass Sie sich hier irren. Tatsächlich sind Geofences nicht dafür ausgelegt, UI direkt auszulösen, wie in der Dokumentation beschrieben:

  

Der von den Standortdiensten gesendete Intent kann verschiedene Aktionen in Ihrer App auslösen. Sie sollten jedoch keine Aktivität oder ein Fragment starten, da Komponenten nur als Reaktion auf eine Benutzeraktion sichtbar sein sollen.

Sie können jetzt wählen, dass Sie nur Geofences verwenden möchten, während Sie Ihre Aktivität im Vordergrund haben. Allerdings müssten Sie diese Geofences in onPause() entfernen. Ein Geofence bleibt bis zu seiner Ablaufzeit registriert oder manuell entfernt, AFAICT.

    
CommonsWare 19.05.2013, 02:48
quelle
1

Diese Antwort kann veraltet sein - die Genauigkeit und Zuverlässigkeit von Google Play-Diensten hat sich seit der ersten Veröffentlichung stark verändert.

Einige meiner Erfahrungen mit Geofencing unten. Vor allem - der Hauptvorteil dieser Technologie ist sehr geringe Batterieauslastung. In der Tat kann ich keine Änderungen in der Akkulaufzeit feststellen. Es ist wirklich beeindruckend. Dienst scheint nur Wi-Fi und Netzwerkstandort zu verwenden. Ich habe gar nicht bemerkt, dass GPS überhaupt läuft. Ich kann nicht sagen, ob es nur ein verstecktes Ortssymbol ist oder wirklich kein GPS benutzt. Genauigkeit - es ist schrecklich. 20 Kreisbereiche werden überhaupt nicht erkannt, außer der Bereich meiner Wohnung ap. Es sieht so aus, als ob der gesamte Positionskreis einschließlich des Fehlers innerhalb des eingezäunten Bereichs liegen muss. 1000m Bereiche werden manchmal und mit großer Latenz erkannt. Diese Experimente wurden im offenen Bereich mit einer sehr geringen Anzahl von WLAN-Geräten durchgeführt. Ich versuche immer noch, wirklich zuverlässige Einstellungen für diesen Service zu finden. Nach dem Erhalt der Absichten möchte ich den GPS-Standort aktivieren und den endgültigen Weg in meinem eigenen Code gehen.

    
piotrpo 03.07.2013 19:30
quelle