9

Ich habe diese Warnungen in meinem Logcat auch nach einer Weile, dass ich die Anwendung verließ. (Aber nicht töten, nur zurückgedrückt, um es zu verlassen.)Android - Aussetzen aller Threads dauerte: * ms

05-03 13:43:42.955 13047-13053/package W/art: Suspending all threads took: 7.873ms 
05-03 13:44:32.458 13047-13053/package W/art: Suspending all threads took: 13.441ms 
05-03 13:46:58.584 13047-13053/package W/art: Suspending all threads took: 34.462ms 
05-03 13:47:00.574 13047-13053/package W/art: Suspending all threads took: 8.281ms 
05-03 13:48:00.425 13047-13053/package W/art: Suspending all threads took: 25.929ms 
05-03 13:48:16.019 13047-13053/package W/art: Suspending all threads took: 35.053ms 
05-03 13:50:01.858 13047-13053/package W/art: Suspending all threads took: 16.160ms 
05-03 13:50:17.975 13047-13053/package W/art: Suspending all threads took: 20.074ms 
05-03 13:52:07.744 13047-13053/package W/art: Suspending all threads took: 19.814ms 
05-03 13:53:17.668 13047-13053/package W/art: Suspending all threads took: 7.578ms 
05-03 13:54:42.766 13047-13053/package W/art: Suspending all threads took: 11.316ms 
05-03 13:56:19.314 13047-13053/package W/art: Suspending all threads took: 21.873ms 
05-03 13:58:56.140 13047-13053/package W/art: Suspending all threads took: 7.860ms 
05-03 14:00:12.084 13047-13053/package W/art: Suspending all threads took: 19.430ms 

Diese Nummern sind ernst und eine Menge.

Ich sah einige Fragen zu diesem Thema, und keiner von ihnen war ähnlich zu mir und ich kann nicht akzeptieren, dass "ignorieren Sie es, wenn Sie nicht OOM oder Einfrieren Problem haben", wenn dies verursachen kann, kann ich nicht warten, bis es passiert etwas dagegen tun.

Ich muss nur wissen, was dies verursacht und wie ich das verhindern kann.

Ich verwende Retrofit, um meine Webservice-Anfrage zu erledigen. Und ein ThreadPoolExecutor zum Abrufen/Aktualisieren/Löschen von Daten aus dem Cache, während auf die Beendigung der Anfrage gewartet wird. Ich glaube aber nicht, dass das alles verursacht.

Irgendwelche Ideen oder allgemeine Informationen über diese Situation werden geschätzt, weil ich nichts spezifisch auf dieser "Suspending all threads" Warnung finde.

+0

aussehen, wenn Sie ein Attribut wie Ansicht in Ihrem Modell verwenden. – Ahmed

Antwort

3

Sieht so aus, als ob in Ihrem Prozess ein Thread läuft, der temporäre Objekte zuweist, die ART zum Sammeln von Müll benötigt, und alle Threads suspendiert, um das zu tun.

Versuchen Sie zu verfolgen, was noch im Hintergrund ausgeführt werden könnte, auch nachdem Sie die App verlassen haben. Sie können auch versuchen, den "Allocation Tracker" in Android Studio zu verwenden, um herauszufinden, welches Objekt zugewiesen wird - vielleicht werden Sie dadurch den streunenden Thread verfolgen.

-1

Es passiert, wenn ich Retrofit Antwortobjekt auf RealmObject erweitern. Ich entferne RealmObject zur Nachrüstung. Für mich geht das.