Renderuję obiekty za pomocą OpenGL, a w większości sytuacji uzyskuję ładną płynność w 60 klatkach na sekundę. DO ZROBIENIA zrobić coś ciężkiego w wątku w tle, jak pobieranie rzeczy z interfejsu API REST, przetwarzanie go i dodawanie obiektów do wykresu (rzeczy o niskim priorytecie, zależy mi bardziej na płynności interfejsu użytkownika). Renderowanie zatrzymuje się następnie na bardzo długi okres, do 1 sekundy (o ile działa wątek tła), a następnie wznawia się tak, jakby nic się nie stało. Zauważyłem to, ponieważ animacja jest uruchamiana w tym samym czasie i utknie ona w tym okresie. Wątek tła ma minimalny priorytet, a odśmiecanie trwa do 100-200 ms, ale nie przez całą sekundę. Gdy ustawiam punkt debugowania w dowolnym miejscu w zadaniu tła, renderowanie będzie kontynuowane bez żadnych opóźnień.Android: renderowanie OpenGL zatrzymuje się, gdy ciężkie zadanie działa w tle.
Czy to możliwe, że mój wątek z grubym tłem zagłodzi wątek OpenGL? Jeśli tak, co mogę zrobić?
Na jakim GPU testujesz? –
Wygląda podejrzanie jak [ten ślad wydajności] (http://stackoverflow.com/q/9612959/1262542) ... –
Niedoszły GPU, to Galaxy Nexus. Sprawdzę to na symulatorze, kiedy wrócę do domu. – manmal