Android GPS-Listener läuft immer
Implementiert habe ich das GPS in meiner app, in der eine Aktivität wie diese:
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
public class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location location)
{
if (location != null) { //do something}
...
}
Dies gut funktioniert. Nach der Entwicklung der app mehr habe ich gemerkt, dass ich die Verwendung von GPS in mehr als einer Aktivität. Ich muss in der Lage sein zu überprüfen, ob gps aktiv ist, und welche Lage hat es zurück aus den 3 Aktivitäten.
Stellen Sie sich dieses Szenario: der Benutzer startet die app. Im hintergrund das GPS versucht, um Satelliten-Verbindung während der Benutzer wählt einige Optionen. Wenn ich zu einer Aktivität, die erfordert, Location info, die ich für ihn Fragen.
Wie kann ich das erreichen ? Sollte dies in einem anderen thread läuft ? Bitte beraten Sie mich. Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich umgesetzt, es als ein Android -Service.
Können Sie es starten, wenn der Benutzer die Anwendung startet:
Platzieren diese in der onPause () - Methode wird die Deaktivierung beim verlassen der Aktivität: mlocManager.removeUpdates(mlocListener);
Wenn Sie mehrere Tätigkeiten benötigen ein gps-listener-ich würde für die Helfer-Klasse, in der ich die location manager und listener. Dort würde ich über public-Methoden zum initialisieren und starten Sie den listener, für immer den letzten bekannten Standort und für die Deaktivierung der updates. Vergessen Sie nicht, fügen Sie Unterstützung für das empfangen der updates in Ihrer Aktivität.
Hier ist ein gutes Beispiel:
Android finden, die GPS-Position einmal zeigen, laden-dialog