Comment faire un écran de démarrage bien codé

Nous soaps tous qu’il existe de nombreux tutoriels sur la création d’un écran de démarrage sous Android. Mais nous soaps aussi que ce sont des pseudo-écrans d’écran . J’ai cherché beaucoup et j’ai toujours vu Thread.sleep(x) . Ce n’est pas bien codé, c’est juste pour que l’application soit belle et ressemble à une application professionnelle, ce n’est pas ce que je veux!
Un autre problème avec ces écrans de démarrage est qu’ils ne résolvent pas mon problème car ils ne la montrent qu’après le début de l’activité et affichent la vue du contenu.

J’ai une application qui fait beaucoup de choses lors de l’initialisation et lorsque l’application démarre, l’utilisateur voit un écran noir pendant quelques secondes, suffisamment de temps pour être ennuyé. C’est pourquoi je souhaite afficher un écran de démarrage bien codé qui supprime cet écran noir qui apparaît avant l’affichage du contenu.

J’ai essayé quelque chose. J’ai inclus l’écran de démarrage (un RelativeLayout ) dans la présentation définie dans MainActivity , mais pour autant que je sache, Android affiche uniquement le contenu une fois que tout a été chargé. Par conséquent, si j’essaie d’afficher une vue de la vue du contenu Je dois attendre que tout soit fini. Je vais quand même envoyer mon code, cela peut aider d’une certaine manière …

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new SplashTask().execute(); } private class SplashTask extends AsyncTask { @Override protected void onPreExecute() { initializeViews(); mSplashScreen.setVisibility(View.VISIBLE); } @Override protected Void doInBackground(Void... params) { return null; } @Override protected void onPostExecute(Void params) { Standard.Initiate(MainActivity.this); verifyListStats(); loadListAdapters(); setOnClickListeners(); mSplashScreen.setVisibility(View.GONE); } } 

J’ai essayé de charger des ressources dans doInBackground(...) mais comme je fais certaines opérations dans onResume() qui ont besoin de ces ressources, je ne peux pas le faire (ou du moins je pense que je ne peux pas).

Une idée? J’ai entendu parler d’un mécanisme intégré similaire aux images de lancement iOS, cela peut peut-être être un moyen.