system.exit(0)

  • hallo zusammen,
    eine MapActivity meiner app nutzt einen LocationManager.
    Ich wollte nun per

    Code
    this.mylocationManager.removeUpdates(myLocationListener); 
    this.mylocationManager = null;


    die GPS-Suche beenden.(Strom sparen)
    Leider funktioniert das nicht richtig und nicht immer, warum auch immer :(


    wenn ich die Activity mit system.exit(0) beende , schaltet die Suche sofort ab und die App kehrt zu der aufrufenden Activity zurück.
    Spricht etwas dagegen so vorzugehen?
    Ich war bisher der Meinung system.exit(0) beendet die komplette Anwendung ?


    EDIT; frisst die GPS-Suche eigentlich auch Strom, wenn der Standort gefunden ist und das Symbol zwar noch angezeigt wird, aber nicht mehr blinkt?

  • Hoi,


    das Blinken heißt er sucht noch, wennsn icht mehr Blinkt hat er endlich ne Verbindung und ne genaue Position. Den Datenstrom erhält er aber aufrecht, wüsste ja sonst nicht ob du dich bewegst.


    System.exit(0) ist rein aus Java, nicht Android. An sich ist bei Android nicht vorgesehen, die App vollständig zu beenden. Wenn du via Home-Button die App verlässt bleibt sie so lange im Hintergrund, bis das System entschieden hat "ich brauch jetzt RAM, die App schieß ich jetzt weg".


    Hab mit GPS selbst noch nichts gemacht deshalb dort keine Erfahrung, aber eine kurze Recherche nach "android intent gps search stop" hat ergeben, dass wohl dein

    Code
    this.mylocationManager.removeUpdates(myLocationListener);


    bereits ausreichen hätte müssen.



    Gruß,
    matze

  • Hallo khh,
    auch ich habe bisher noch keine Erfahurng mit der Programmierung von GPS-Apps.
    Aber irgendwie scheint es dort ein Problem zu geben mit dem An- und Abschalten von GPS.
    Erstens muss man ja wohl feststellen, on nicht eine andere App diesen Servis benutzt und falls ja, dann kann man den wohln nicht enfach abschalten.
    Zweitens dauert es ja oft ganz schön lange, ehe das Samrtphone genug Sateliten zusammen hat.
    Ich habe bei mehreren GPS-Apps beobachtet, z.b. auch bei dem von mir geliebten OSMAND, dass diese sicht NICHT darum kümmern, ob GPS angeschaltet ist. Sie nehmen es einfach so, wie es ist und überlassen es dem Benutzer den GPS-Service zu aktivieren.
    Wenn dieser Beitrag auch eigentlich nicht unbedingt etwas mit deiner Frage zu tun haben sollte,
    dennoch
    Schöne Grüße, schymura ^^

  • Hoi,


    muss irgendwie immer daran denken, wie Ingress das macht ...


    Ich mach mein GPS an, der Kreis erscheint und ist nicht ausgefüllt, er sucht auch keinen Satelliten. Dann mach ich Ingress an und er fängt an zu suchen. Mache ich Ingress wieder aus ist der Kreis wieder leer, also er trennt die Verbindung, GPS selbst ist aber noch an.


    Dieses Verhalten wäre doch genau das, was man erwartet. Inwiefern unterscheidet sich das von deinem jetzigen Stand?



    Gruß,
    matze

  • Hallo matthias,

    Zitat

    Mache ich Ingress wieder aus ist der Kreis wieder leer, also er trennt die Verbindung, GPS selbst ist aber noch an.

    welche Verbindung trennt es??


    Also, bei OSMAND braucht man keine Verbindung zu irgendeinem Server. Kann man also auch im Flugmodus betreiben, denn die Vektorkarten sind ja alle an Bord (auf dem Smartphone).


    Schöne Grüße, schmyura ^^

  • ich danke euch für eure Ausführungen.


    Es reicht tatsächlich aus, den Listener zu entfernen.


    Ich hatte übersehen, dass myLocationOverlay.enableMyLocation();
    GPS "am Leben hält"
    ein zusätzliches myLocationOverlay.disableMyLocation();
    im onPause ist die Lösung des Problems.
    :-[

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!