Comme nous le savons tous, de nombreuses applications Android affichent un écran blanc très brièvement avant leur première Activitymise au point. Ce problème est observé dans les cas suivants:
Applications Android qui étendent la
Applicationclasse globale et y effectuent des initialisations majeures. L'Applicationobjet 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.NoActionBarcomme décrit ici , car [malheureusement] mon écran de démarrage utilise un fichier ActionBar.
Pendant ce temps, les applications qui n'étendent pas la Applicationclasse n'affichent pas l'écran blanc au démarrage.
Le fait est que, idéalement, les initialisations effectuées dans l' Applicationobjet doivent se produire avant que la première ne Activitysoit affichée. Ma question est donc la suivante: comment puis-je effectuer ces initialisations au démarrage de l'application sans utiliser d' Applicationobjet? Peut-être en utilisant un Threadou 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 NoActionBarthème), car tragiquement mon écran Splash a en fait une ActionBarraison pour des raisons indépendantes.
Remarque:
J'ai déjà évoqué les questions suivantes:
Références:
Applicationclasse. 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.


