Как мы все знаем, многие приложения для Android отображают белый экран очень кратко, прежде чем их первый Activity
станет в фокусе. Эта проблема наблюдается в следующих случаях:
-
Приложения Android, расширяющие глобальный класс
Application
и выполните основные инициализации.Application
объект всегда создается до первогоActivity
(факт, который может наблюдаются в отладчике), поэтому это имеет смысл. Это является причиной задержки в моем случае. -
Android-приложения, отображающие окно предварительного просмотра по умолчанию перед заставкой.
Настройка android:windowDisablePreview = "true"
явно не работает. Я также не могу установить родительскую тему заставки на Theme.Holo.NoActionBar
, как описано здесь, потому что [к сожалению] мой заставку использует ActionBar
.
В то же время приложения, которые не расширяют класс Application
не, отображают белый экран при запуске.
Дело в том, что в идеале инициализации, выполняемые в объекте Application
, должны возникать до появления первого Activity
. Итак, мой вопрос: как я могу выполнить эти инициализации при запуске приложения без использования объекта Application
? Возможно, используя Thread
или Service
, я полагаю?
Это интересная проблема, о которой нужно подумать. Я не могу обойти это обычным способом (установив тему NoActionBar
), так как трагически мой экран Splash на самом деле имеет ActionBar
из-за некоторых не связанных причин.
Примечание:
Я уже говорил о следующих вопросах:
Литература: