Przycisk Wstecz bardzo wolno

Mam aplikację na Androida z TabActivity zawierającą 4 karty - widok listy, widok mapy, inną listę i przeglądarkę internetową. Z widoku listy mogę stuknąć element i rozpoczyna się kolejna aktywność, naciśnięcie wstecz powoduje powrót do aktywności karty.

Jednak po odwiedzeniu karty widoku mapy przejście do drugiego działania z widoku listy, a następnie naciśnięcie przycisku wstecz powoduje zawieszenie na około 3-4 sekundy. Po odwiedzeniu widoku mapy problem ten nigdy nie zniknie, dopóki aplikacja nie zostanie zamknięta.

Jeszcze kilka uwag:

Widok mapy może również uruchamiać inną czynność - w tym przypadku przycisk Wstecz działa prawidłowo - tylko wtedy, gdy karta widoku mapy jest nieaktywna, gdy uruchamiane jest drugie działanie, w którym wystąpił problem.Testowanie na dwóch urządzeniach - problem występuje w Galaxy S, nie występuje w Nexys 7.Logcat nie widzi nic oczywistego.Aplikacja korzysta z Map API V2 i obsługuje lib do obsługi fragmentów.Aplikacja jest napisana w Mono.

Więcej informacji. Wpisałem kilka komunikatów dziennika na temat aktywności na mapie dla zdarzeń cyklu życia:

Przełączanie z karty mapy:

02-12 18:53:43.841 I/MAPTEST ( 5031): OnSaveInstanceState
02-12 18:53:43.857 I/MAPTEST ( 5031): OnPause

Uruchamianie drugiego działania z karty widoku listy:

02-12 18:54:06.900 I/MAPTEST ( 5031): OnSaveInstanceState
virtual void WebCore::Widget::show()
virtual void WebCore::Widget::show()
void WebCore::ScriptController::updatePlatformScriptObjects()
virtual void WebCore::Widget::show()
static bool WebCore::ResourceHandle::supportsBufferedData()
static bool WebCore::ResourceHandle::supportsBufferedData()
02-12 18:54:07.353 I/MAPTEST ( 5031): OnStop

Naciśnięcie przycisku Wstecz od drugiej czynności (tj .: gdy nastąpi przerwa):

-- Absolutely nothing in log cat --

Powrót do karty mapy:

02-12 18:54:59.056 I/MAPTEST ( 5031): OnRestart
02-12 18:54:59.060 I/MAPTEST ( 5031): OnStart
02-12 18:54:59.064 I/MAPTEST ( 5031): OnResume

Co może spowodować powrót do aktywności do zablokowania na 3-4 sekundy?

Alternatywnie, co jeszcze mogę zrobić, aby to zdiagnozować?

Więcej informacji:

Zgodnie z komentarzem michal-z, profilowałem go pod DDMS i większość czasu spędzałem na wysyłaniu wiadomości, układaniu i rysowaniu ... więc jestem podejrzliwy wobec jakiegoś rekurencyjnego układu lub problemu z rysowaniem ...

Próbowałem też usunąć fragment mapy, gdy aktywność mapy została zatrzymana i dodając ją z powrotem, gdy aktywność mapy zostanie uruchomiona, a to rozwiązało problem opóźnienia, ale mapa nie pamięta jego stanu, traci wszystkie swoje znaczniki i powraca ponownie.

Kolejna obserwacja:

Thetylko rozwiązaniem, które mogłem znaleźć, jest usunięcie fragmentu, gdy aktywność jest zatrzymana i dodanie go z powrotem po wznowieniu - a także zapisanie pozycji kamery. Próbowałem też ukryć i ponownie pokazać fragment zarówno za pomocą menedżera fragmentów, jak i bezpośrednio w widoku mapy - bez powodzenia.

questionAnswers(0)

yourAnswerToTheQuestion