Заставка при загрузке ресурсов в приложении для Android - PullRequest
14 голосов
/ 16 февраля 2011

Я хотел бы иметь заставку при загрузке ресурсов (изображений и звуков). Как я знаю, что все загружено? Все ли ресурсы загружены при запуске приложения?

Спасибо

Ответы [ 4 ]

22 голосов
/ 02 февраля 2012

Для соответствующей реализации заставки в Android вы хотите:

  1. Отображение экрана переднего плана с некоторой индикацией прогресса для пользователя.
  2. Выполнить фоновый поток для выполнения задач, которые занимают неопределенное время.
  3. Оба потока связываются между собой, так как вам нужен передний план, чтобы показать прогресс на заднем плане.
  4. Правильно уничтожать фоновый поток, когда он заканчивает выполнение своей задачи. Если вы планируете использовать AsyncTask в Android, у вас есть проблема там. ( Link )

Я нашел этот учебник и настоятельно рекомендую: http://www.41post.com/4588/programming/android-coding-a-loading-screen-part-1

Часть 1 выполняет эту основную задачу, часть 2 показывает, как правильно убить AsyncTask. А часть 3 ставит настроенное представление на передний план вместо ProgressActivity.

5 голосов
/ 21 июня 2012

Итак, вы написали учебник о том, как создать SplashScreen с индикатором выполнения:
http://blog.blundellapps.com/tut-splashscreen-with-progress-bar/

По сути, вместо вашего потока он запускает ASyncTask, вы передаете ссылку на ваш progressSpinner в ASyncTask, и он обновляет его, когда поток загружает ресурсы (или все, что вы хотите сделать).

enter image description here

5 голосов
/ 16 февраля 2011

Вы можете выполнить всю загрузку в asyncTask, тогда ваш onPostExecute удалит заставку.Это поможет вам не блокировать поток пользовательского интерфейса при выполнении дорогостоящих задач, которые могут вызвать всплывающее окно ANR.

2 голосов
/ 16 февраля 2011

Вот полное руководство о том, как это сделать. Я сам использовал этот с отличными результатами.

http://www.barebonescoder.com/2010/04/a-simple-android-splash-screen/

...