Кнопка возврата очень медленная
У меня есть приложение для Android с TabActivity, содержащее 4 вкладки - представление списка, представление карты, другой список и веб-просмотр. В представлении списка я могу нажать на элемент, и он начинает другое действие, нажав назад, чтобы вернуться к действию вкладки.
Однако после посещения вкладки представления карты переход ко второму действию из представления списка и затем нажатие кнопки «назад» приводит к зависанию примерно на 3-4 секунды. Когда посещение карты посещено, эта проблема никогда не исчезнет, пока приложение не будет закрыто.
Еще несколько заметок:
Представление карты также может запустить другое действие - и в этом случае кнопка возврата работает нормально - это 'При возникновении проблемы, только если вкладка представления карты не активна при запуске второго действия.Тестирование на двух устройствах - проблема возникает на Galaxy S, неэто происходит на Nexys 7.Там'Нет ничего очевидного в logcat, что я вижу.Приложение использует Maps API V2 и поддерживает lib для поддержки фрагментов.Приложение написано в моно.Больше информации. Для этого я добавляю несколько сообщений в журнал на карте "События жизненного цикла:
Переход от вкладки карты:
02-12 18:53:43.841 I/MAPTEST ( 5031): OnSaveInstanceState
02-12 18:53:43.857 I/MAPTEST ( 5031): OnPause
Запуск второго действия на вкладке представления списка:
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
Нажатие кнопки «Назад» во втором упражнении (то есть, когда происходит пауза):
-- Absolutely nothing in log cat --
Переключение обратно на вкладку карты:
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
Что может привести к блокировке возврата к занятию на 3-4 секунды?
Кроме того, что еще я могу сделать, чтобы диагностировать это?
Больше информации:
Согласно Михал-З 'с комментариями, профилировал его под DDMS и большую часть времени проводил в рассылке сообщений, макете и рисовании ... так что яm подозрительно относится к какой-то рекурсивной компоновке или проблеме с рисованием ...
Кроме того, я попытался удалить фрагмент карты, когда действие карты остановлено, и добавить его обратно, когда действие карты запущено, и это решило проблему задержки, но карта не 'не помню этосостояние, теряет все этомаркеры и этомедленно появляются
Еще одно продолжение:
только Решение, которое я мог бы найти для этого, состоит в том, чтобы удалить фрагмент, когда действие остановлено, и добавить его обратно при возобновлении, а также сохранить положение камеры. Я также попытался скрыть и снова показать фрагмент как с помощью диспетчера фрагментов, так и непосредственно в виде карты - не повезло.