2017-07-08 4 views
0

Ich habe einen Hintergrund-Service, der im Hintergrund Tracking-Gerät-Standort mit einem PendingIntent läuft.Best Practice zur Verwaltung von GoogleApiClient

Der Service ruft mFusedLocationClient.requestLocationUpdates(mLocationRequest, locationRequest, pendingIntent auf, um die Standortverfolgung zu starten, aber manchmal auch, um die Standortverfolgung zu aktualisieren (die Häufigkeit von Aktualisierungen ändern).

Sollte ich die GoogleApiClient Instanz in der Serviceklasse speichern oder sollte ich sie jedes Mal verbinden, wenn ich sie brauche?

  • Ich mache mir Sorgen, wenn ich es speichere, kann Trennung auftreten. Dies sollte in der Theorie kein Problem sein, da die Dokumentation sagt GoogleApiClient automatisch versucht, sich erneut zu verbinden.

  • Wenn ich jedes Mal an GoogleApiClient anschließe, fügt es ein bisschen Komplexität im Code hinzu, weil die mit connect() hergestellte Verbindung asynchron ist.

  • Basierend auf Ihrer Erfahrung, was halten Sie für die beste?

    Antwort

    0

    Sie sollten googleApiClient.connect() in onStart() Ihrer Aktivität und googleApiClient.disconnect() in onStop() anrufen. Sie können GoogleApiClient.ConnectionCallbacks implementieren, die Sie wissen lassen, ob der Client erfolgreich verbindet, indem public void onConnected(Bundle bundle) aufgerufen wird, und Sie dann auf Ihre API zugreifen können.

    +0

    Danke. Ich habe die Beschreibung aktualisiert. Ich habe einen Hintergrunddienst. Ich mache mir Sorgen wegen der Trennung. –