Programm mit Local Service wird sporadisch beendet

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Fl4sh, 14.03.2011.

  1. Fl4sh, 14.03.2011 #1
    Fl4sh

    Fl4sh Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    14.03.2011
    Hallo!

    Ich habe ein Programm geschrieben, welches kontinuierlich den Lautstärkepegel misst und diesen für eine spätere Auswertung in einer Datenbank speichert und die Daten zu einem Server schickt. Dies ist Teil meiner Bachelorarbeit im Studiengang Informatik.

    Neben der GUI habe ich zum Sammeln, Bearbeiten und Speichern der Daten einen Service geschrieben. Ich habe lange überlegt, ob ich einen LocalService oder Global Service verwende. Letztendlich habe ich einen Lokalen verwendet, da dieser 1. einfacher zu implementieren war und 2. einige Foren im Netz schrieben, ein globaler Service sollte nur verwendet werden, wenn wirklich mehrere Programme auf die Daten zugreifen sollen. D.h. GUI und "Datensammel-Service" laufen im gleichen Prozess.

    Das Programm soll zur Langzeitmessung in Versuchen verwendet werden. Es soll getestet werden in wie weit Handys als Sensoren verwendet werden können. Nur leider wird das Programm sporadisch beendet. Den Grund hierfür habe ich leider nicht heausfinden können (JEmand eine Idee, wie man das macht?). Ich habe jedoch die Vermutung, dass Android das Programm irgendwann beendet. Wie kann ich das verhindern? Kann ich das Programm schützen oder mit einer höheren Proirität ausführen lassen?
    Letztendlich ist es ja ein Hintergrund-Service, der ständig laufen sollte.

    Danke! :)
    Fl4sh
     
  2. FelixL, 15.03.2011 #2
    FelixL

    FelixL Ehrenmitglied

    Beiträge:
    4,855
    Erhaltene Danke:
    754
    Registriert seit:
    26.11.2009
    Phone:
    Wileyfox Swift, HTC One M8
    Willkommen im Forum!

    a) Welche Android Version?
    b) Services werden beendet wenn das Gerät Arbeitsspeicher braucht und Android den Service für unwichtig empfindet, z.B. weil die App dazu ewig nicht auf war ;)
    Es gibt bei neueren Android-Versionen afaik die Möglichkeit einen Hintergrund-Service sicher am Leben zu erhalten, dafür muss aber in der Statuszeile ein Icon angezeigt werden.

    Tipp 1: http://developer.android.com/reference/android/app/Service.html#ServiceLifecycle
    START_STICKY wird afaik wieder gestartet sobald möglich, wenn er beendet wurde.

    Tipp 2: http://developer.android.com/guide/topics/fundamentals/services.html#Foreground
    Das funktioniert ab Android 2.0 sicher, hat aber die Notification in der Statuszeile.
     
    Zuletzt bearbeitet: 15.03.2011
  3. Fl4sh, 28.03.2011 #3
    Fl4sh

    Fl4sh Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    14.03.2011
    Hi!

    Sorry für die späte Antwort! Es handelt sich um v2.2, aber habe das Problem mit deiner Hilfe scheinbar gelöst.
    Ich benutze jetzt nicht nur Bind_service, sondern starte den service noch explizit mit START_STICKY.
    Auch habe ich jetzt ein Icon in der Statuszeile und alles klappt. Juhuu! :D danke! :)
     

Diese Seite empfehlen