locationManager.removeUpdates(this); nach Rotation

Q

qwert_zuiopue

Fortgeschrittenes Mitglied
6
Hallo,

ich habe in der onCreate()-Methode folgende Zeilen, um einen LocationManager zu installieren:
Code:
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0,this);

um die Registrierung wieder aufzuheben noch folgendes:
Code:
	@Override 
	public void onBackPressed() {
		locationManager.removeUpdates(this);
        }

Es funktioniert wunderbar, außer ich drehe das Smartphone zwischendurch, dann findet keine Abmeldung statt.

Habe ich etwas übersehen? Muss ich da irgendwas gesondert behandeln?

Vielen Dank!
 
du müsstest in der onPause auch noch so ein Remove einbauen und die Frage ist auch wenn du eine Rotation hast, verändert sich die View, wird der LocationManager dann nicht mehr gebraucht oder was?
 
  • Danke
Reaktionen: qwert_zuiopue
Der LocationManager wird solange gebraucht, bis diese Activity geschlossen wird. Mit dem anfordern und entfernen der Updates in onResume() und onPause() funktioniert es. Allerdings geht beim Drehen die aktuell aufgebaute Verbindung verloren und es wird neu gesucht. Komischerweise passiert das nur, wenn ich von Portrait nach Landscape drehe. Andersherum bleibt die Verbindung bestehen.
 
ich hab das gefühl das er wenn du von land auf portrait wechselst er bestimmte funktionen durchläuft die er wenn es anders herum ist nicht durch läuft. setzt mal ein breakpoint bei onCreate, onPause, onResume und schau mal wann er alles da rein kommt. Und wieso eine Update bei der onPause? Wenn die App "schlafen" gelegt wird soll er updaten? Seltsames Prinzip
 
Man kann das "neu laden" beim drehen auch verhindern. Iwas muss man in der AndroidManifest.xml ändern.
Keine Ahnung was, kannst ja mal suchen...

Gruß
 
Es wird jedesmal onPause() und onResume() aufgerufen. Ich habe festgestellt, dass der Verbindungsabbruch manchmal zustande kommt und manchmal nicht, egal wie man dreht.


Edit: @IceClaw: Ich muss die App aber neu laden lassen, ansonsten wird ja auch das Layout nicht geändert, wenn ich das richtig verstehe.
 
Zuletzt bearbeitet:
geh doch bitte trotzdem mal mit dem debugger durch ...
 
Ich weiß nicht ob das Layout davon abhängig ist. Ich würde es einfach mal suchen und testen :D

Ansosten gibt es eventuell eine methode, die die rotation abfängt?! :D

€dit: WindowManager oder sowas?!

€dit: http://stackoverflow.com/a/456918 <- da, deine lösung. Von Reto Meier persönlich :D
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: qwert_zuiopue

Ähnliche Themen

5
Antworten
22
Aufrufe
1.414
590239
5
G
Antworten
5
Aufrufe
867
jogimuc
J
G
Antworten
0
Aufrufe
393
gnome2012
G
Zurück
Oben Unten