App stürzt ab, wenn im Browser Internetseite geladen wird

F

Funkfeuer

Neues Mitglied
1
Hallo,

ich habe bei meiner App ein komisches Verhalten festgestellt.

Meine App besteht aus einem Service, der jede Minute (Timer) zwei Webservices aufruft.
Das funktioniert alles wunderbar - stundenlang, egal ob ich meine App im Vordergund/Hintergrund halte oder andere Apps starte.
Der Service läuft immer.

Wenn ich aber ein paar Stunden nix mit dem Smartphone gemacht habe und dann mit dem Browser (z. B. GMX-Startseite) aufrufe und während des Ladens der Website zu meiner App wechsle, stürzt meine App unschön ab (Fehlermeldung: Tut uns Leid...).

Wenn ich anschliessend meine App wieder neu starte und nochmals GMX im Browser aufrufe, stürzt die App nicht mehr ab.

Hat jemand eine Idee, woran das liegen könnte. Für mich hört sich das so an, als ob es am Lebenszyklus der App liegt (onPause oder onStop)..?
Aber in der Activity habe ich beide Methoden nicht implementiert, d. h. die Android-Standardmethoden werden aufgerufen..

cu
Chris
(Android 2.3)
 
Hi,

schau doch einfach im Log nach, warum die App abstürzt.

Falls du auf einem Endgerät testest, dann benutzt den Logcollector aus dem Market. Habe ich auch drauf.

Viele Grüße
 
Ich kann aber leider nur erkennen, dass meine test-Anwendung (test.test1) "gestorben" (died) ist und versucht wird den zur Anwendung gehörenden Hintergrundservice (AutoSyncService) wieder zu starten.
Den eigentlichen Grund, warum meine Anwendung aber "gestorben" ist, kann ich nicht erkennen.
Habe wieder mal im Browser die GMX-Startseite aufgerufen, als es passierte...

Vielleicht könnt ihr mehr erkennen:

kill.jpg
 
Wie es aussieht liegt es daran, dass Android meine App - aus Ressourcengründen - abschiesst..
Wie kann ich verhindern, dass Android genau den Prozess meiner App abschiesst?
An Inaktivität meiner App kann es eigentlich nicht liegen, denn es läuft ja der Background-Thread für den Service, der jede Minute eine Verbindung ins Internet aufbaut.
Kann man die Priorität meines Prozesses erhöhen bzw. hilft das überhaupt was..?!

cu
Chris
 
Der Vollständigkeit halber - und für alle die das gleiche Problem haben wie ich - eine Lösungsmöglichkeit.

Der Service muss als Foreground-Service definiert werden: Service | Android Developers


Mein beschriebenes Problem mit dem "Aufruf der GMX-Startseite" wird hier auch angesprochen:
... system needs to kill them to reclaim more memory (such as to display a large page in a web browser),...
Eine (für mich schöne) "Nebenwirkung" hat das der Foreground-Service:
Nachdem ein Service immer im Hauptprozess einer App läuft, erhält somit nicht nur der Service, sondern gleich die ganze App den Zustand "Foreground".
Es wird damit - auch die App - nicht mehr von Android abgeschossen. Das bezieht sich auch auf weitere "normale" Services, die in der App laufen (ob das Sinn macht ist ein anderes Thema..?). Ab dem Zeitpunkt, ab dem in einer App ein Foreground-Service läuft, werden auch "normale" Services der App nicht mehr beendet :)

cu
Chris
 

Ähnliche Themen

S
Antworten
8
Aufrufe
511
swa00
swa00
F
  • Fischi84
Antworten
2
Aufrufe
1.916
Fischi84
F
Manny87
  • Manny87
Antworten
11
Aufrufe
165
swa00
swa00
Zurück
Oben Unten