Immer ANRs nach Beendigung android-service

Habe ich eine Aktivität startet einen lokalen service mit der bindService() Methode. Funktioniert alles Super, während die app läuft, aber wenn ich beenden Sie die app und lösen Sie aus dem Dienst in der activity onDestroy(), einige Sekunden später sehe ich folgende Fehler zeigen sich in logcat:

09-25 02:13:46.035: WARN/ActivityManager(60): Timeout executing service: ServiceRecord{4401dfc0 net.kicksass.shootingstarbbs.streamstar/.StreamStarService}
09-25 02:13:46.055: INFO/Process(60): Sending signal. PID: 285 SIG: 3
09-25 02:13:46.055: INFO/dalvikvm(285): threadid=3: reacting to signal 3
09-25 02:13:46.103: INFO/dalvikvm(285): Wrote stack traces to '/data/anr/traces.txt'
09-25 02:13:46.103: INFO/Process(60): Sending signal. PID: 60 SIG: 3
09-25 02:13:46.103: INFO/dalvikvm(60): threadid=3: reacting to signal 3
09-25 02:13:46.203: INFO/dalvikvm(60): Wrote stack traces to '/data/anr/traces.txt'
...
09-25 02:13:46.683: ERROR/ActivityManager(60): ANR in net.kicksass.shootingstarbbs.streamstar
09-25 02:13:46.683: ERROR/ActivityManager(60): Reason: Executing service net.kicksass.shootingstarbbs.streamstar/.StreamStarService
09-25 02:13:46.683: ERROR/ActivityManager(60): Load: 3.08 / 1.16 / 0.41
09-25 02:13:46.683: ERROR/ActivityManager(60): CPU usage from 21237ms to 43ms ago:
09-25 02:13:46.683: ERROR/ActivityManager(60):   rbbs.streamstar: 7% = 4% user + 2% kernel / faults: 4967 minor 14 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   system_server: 3% = 2% user + 1% kernel / faults: 434 minor 8 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   com.svox.pico: 1% = 0% user + 0% kernel / faults: 2817 minor 1 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   adbd: 0% = 0% user + 0% kernel
09-25 02:13:46.683: ERROR/ActivityManager(60):   ndroid.launcher: 0% = 0% user + 0% kernel / faults: 353 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   m.android.phone: 0% = 0% user + 0% kernel / faults: 187 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   putmethod.latin: 0% = 0% user + 0% kernel / faults: 151 minor 1 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   .quicksearchbox: 0% = 0% user + 0% kernel / faults: 115 minor 1 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   m.android.email: 0% = 0% user + 0% kernel / faults: 140 minor 1 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   kswapd0: 0% = 0% user + 0% kernel
09-25 02:13:46.683: ERROR/ActivityManager(60):   logcat: 0% = 0% user + 0% kernel / faults: 6 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   ndroid.settings: 0% = 0% user + 0% kernel / faults: 118 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   d.process.acore: 0% = 0% user + 0% kernel / faults: 90 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   id.defcontainer: 0% = 0% user + 0% kernel / faults: 103 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   m.android.music: 0% = 0% user + 0% kernel / faults: 109 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   d.process.media: 0% = 0% user + 0% kernel / faults: 110 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   com.android.mms: 0% = 0% user + 0% kernel / faults: 121 minor 1 major
09-25 02:13:46.683: ERROR/ActivityManager(60):   events/0: 0% = 0% user + 0% kernel
09-25 02:13:46.683: ERROR/ActivityManager(60):   roid.alarmclock: 0% = 0% user + 0% kernel / faults: 102 minor
09-25 02:13:46.683: ERROR/ActivityManager(60):   android.protips: 0% = 0% user + 0% kernel / faults: 102 minor
09-25 02:13:46.683: ERROR/ActivityManager(60): TOTAL: 7% = 3% user + 3% kernel + 0% iowait

Nicht ganz sicher, was hier Los ist, wenn man bedenkt, sowohl die Aktivität und den Dienst beendet haben (onDestroy() ausgeführt hat, die in beiden). Ich vermute, es ist noch ein Faden, der sich irgendwo? Der Dienst übernimmt das erstellen und verwenden der Android-MediaPlayer.

  • Haben Sie es gelöst? Wenn ja, könnten Sie bitte aktualisieren Sie Ihre Lösung? Wenn nicht - überprüfen Sie, was Ihre Dienstleistung ist onUnbind() gibt. Wenn ich es auf false zurück, dann funktioniert es Ok, aber wenn das stimmt dann hol ich mir ANR. Aber ich bin ot Ideen, warum die Rückgabe von false behebt es für mich. Ich wünschte, ich könnte Holen Sie sich ein klares Verständnis.
InformationsquelleAutor Mike Lowery | 2010-09-25
Schreibe einen Kommentar