2016-11-13 2 views
0

In meiner Anwendung muss ich ein Update für den Standort des Benutzers bei der Eingabe einer anderen Stadt erhalten.Ist es möglich, eine Standortänderung ohne Batterieverbrauch auszulösen?

So zum Beispiel:

  1. Benutzer lebt in Citya
  2. Benutzer reist von Citya
  3. Eine Funktion cityB ausgelöst werden soll.

Ich sehe nur die folgenden Funktionen von Google Play-Dienste zur Verfügung gestellt werden:

  1. public abstract Location getLastLocation (GoogleApiClient client)

  2. public abstract PendingResult<Status> requestLocationUpdates (GoogleApiClient client, LocationRequest request, LocationListener listener)

Das Problem ist:

Ich muss die Standortänderungen des Benutzers kontinuierlich verfolgen, nicht nur, wenn der Benutzer die App verwendet.

Wie könnte ich das tun, ohne die Batterie zu schnell zu entladen?

+0

Was ist mit onLocationChanged-Methode? Sie können es in irgendeiner Art von Service verwenden. Und Sie können Veranstaltungen erhalten, selbst wenn Ihre App geschlossen ist – Pein

+0

https://developer.android.com/training/location/geofencing.html – CommonsWare

Antwort

0

Sie können dafür Broadcast-Empfänger verwenden. Es gibt eine Dokumentation unter https://developer.android.com/reference/android/content/BroadcastReceiver.html.

private static final LocationRequest REQUEST = LocationRequest.create() .setFastestInterval(60000) // in milliseconds .setInterval(180000) // in milliseconds .setPriority(LocationRequest.PRIORITY_LOW_POWER);

'@Override 
public void onConnected(Bundle bundle) { 
    LocationServices.FusedLocationApi.requestLocationUpdates(
     mGoogleApiClient, 
     REQUEST, 
     this); // LocationListener 
}` 

Verwenden FusedLocationApi und Sie werden gut zu gehen.

Verwandte Themen