Android: как избежать задержки при смене активности?

1

Я работаю над простой игрой для Android. На основном мероприятии есть кнопка "Воспроизвести". Когда пользователь нажимает на нее, предполагается открытие активности "Поиск других игроков", со списком других игроков, с которыми он будет играть.

Этот список игроков генерируется динамически, подключаясь к центральному серверу, поэтому он занимает 2-3 секунды.

То, что я хочу, чтобы приложение выполняло, как только пользователь нажимает кнопку "Воспроизвести", - это открыть фон активности "Поиск игроков", а затем отобразить имена других игроков по мере ответа сервера.

Однако происходит то, что после нажатия кнопки "Воспроизвести" ничего не происходит в течение 2-3 секунд (пока приложение получает данные с сервера), а затем открывает новое окно активности со всеми имеющимися данными.

Есть ли способ принудительно открыть фон новой деятельности, а затем работать над сбором данных?

  • 0
    Вы блокируете свой звонок на сервер? Нет причин, по которым вы не можете установить пользовательский интерфейс при получении данных с сервера, а затем заполнить пользовательский интерфейс после возврата вызова сервера. Как выглядит метод onCreate ?
  • 0
    Я вызываю все, что связано с методом onCreate, и я думаю, что в этом причина. Я разделю вещи на темы, как предложено ниже.
Теги:

2 ответа

2
Лучший ответ

Запустите новую Activity и убедитесь, что вы выполняете всю загрузку в фоновом потоке. Если основной поток занят, он будет выглядеть так, как если бы он был заморожен, даже если он не был.

Оформить заказ AsyncTask для этого, как это точно для него :)

  • 0
    Да, и простой, который ловит всех, убедитесь, что вы обновляете пользовательский интерфейс в главном потоке при добавлении имен игроков, я всегда забываю об этом в первый раз и удивляюсь, почему он вылетает!
  • 0
    также заглянуть в погрузчики
Показать ещё 1 комментарий
2

Вот почему они создали AsyncTask. Посмотрите на это.

  • 0
    Спасибо, проверим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню