9

Mam te ostrzeżenia w moim logcat nawet po pewnym czasie, że opuściłem aplikację. (Choć nie zabił, tylko przycisnął go z powrotem do wyjścia.)Android - Zawieszanie wszystkich wątków trwało: * 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 

Te numery są poważne i dużo.

Widziałem kilka pytań na ten temat i żaden z nich nie był podobny do mojego i nie mogę zaakceptować, że "zignoruj ​​to, chyba że nie masz OOM lub problemu z zamrożeniem", jeśli to może spowodować, nie mogę się doczekać, aż to się stanie coś z tym zrobić.

Po prostu muszę wiedzieć, co powoduje to i jak mogę temu zapobiec.

Używam Retrofit, aby uzyskać moje żądanie usługi sieciowej. I ThreadPoolExecutor do pobierania/aktualizacji/usuwania danych z pamięci podręcznej podczas oczekiwania na żądanie zakończone. Nie sądzę jednak, żeby któryś z nich powodował to.

Wszelkie pomysły i ogólne informacje na temat tej sytuacji są mile widziane, ponieważ nie znalazłem nic szczególnego w tym ostrzeżeniu "zawieszanie wszystkich wątków".

+0

Sprawdź, czy używasz atrybutu typu Widok w swoim modelu. – Ahmed

Odpowiedz

3

Wygląda na to, że w twoim procesie działa wątek, przydzielając tymczasowe obiekty, które ART musi usunąć i zawiesić wszystkie wątki, aby to zrobić.

Spróbuj prześledzić, co może być uruchomione w tle nawet po wyjściu z aplikacji. Możesz również spróbować użyć "Modułu alokacji zasobów" w Androidzie Studio, aby znaleźć przydzielony obiekt - może to pozwoli Ci na śledzenie zabłąkanych wątków.

-1

Zdarza się, gdy rozszerzam obiekt odpowiedzi Retrofit na RealmObject. Usuwam RealmObject do odpowiedzi modernizacji. Mi to pasuje.