Comme nous le savons tous, de nombreuses applications Android affichent un écran blanc très brièvement avant leur première Activity
mise au point. Ce problème est observé dans les cas suivants:
Applications Android qui étendent la
Application
classe globale et y effectuent des initialisations majeures. L'Application
objet est toujours créé avant le premierActivity
(un fait qui peut être observé dans le débogueur), donc cela a du sens. C'est la cause du retard dans mon cas.Applications Android qui affichent la fenêtre d'aperçu par défaut avant l'écran de démarrage.
Le réglage android:windowDisablePreview = "true"
ne fonctionne évidemment pas ici. Je ne peux pas non plus définir le thème parent de l'écran de démarrage Theme.Holo.NoActionBar
comme décrit ici , car [malheureusement] mon écran de démarrage utilise un fichier ActionBar
.
Pendant ce temps, les applications qui n'étendent pas la Application
classe n'affichent pas l'écran blanc au démarrage.
Le fait est que, idéalement, les initialisations effectuées dans l' Application
objet doivent se produire avant que la première ne Activity
soit affichée. Ma question est donc la suivante: comment puis-je effectuer ces initialisations au démarrage de l'application sans utiliser d' Application
objet? Peut-être en utilisant un Thread
ou Service
, je suppose?
C'est un problème intéressant auquel réfléchir. Je ne peux pas le contourner de la manière habituelle (en définissant le NoActionBar
thème), car tragiquement mon écran Splash a en fait une ActionBar
raison pour des raisons indépendantes.
Remarque:
J'ai déjà évoqué les questions suivantes:
Références:
Application
classe. Cela est dû aux nouvelles versions de la manière d'Android de "démarrer à froid" les applications. Google a en fait abordé les heures de lancement à Google I / O cette année et cela sera corrigé en N d'après ce dont je me souviens. En attendant, vous devriez regarder ce que Google appelle un "écran de lancement de marque". Voici un exemple sur la façon de le créer: antonioleiva.com/branded-launch-screen - plus d'écran blanc au début ;-) Et n'utilisez pas d'écrans de démarrage - c'est ennuyeux pour l'utilisateur.