Recently Ive came across a minior discussion about Splash Screen in Android and how this is improving or even a disadvantage for the user of your app!
We talked about the usefulness of those splash screens. Some want to use them to display the company logo or app logo, so the user has to stare several seconds on the logo. If the screen stays for 3 secs and the user opens the app 3 times a day, this makes 9 seconds of waiting or 35 secs a week. If you have 1 million users, your users will wait for 35000000 secs or 583333 minutes or 9722 hours A WEEK! Just let this huge numbers sink in
What a waste of time!
On the other hand Google advocates using splash screens. You can find it here in the material design guidelines. All Google apps like Youtube, Mail or others using splash screens! But they only let the user wait the minimal time necessary for the app to load! Not a second longer.
Implement a splash screen
So at first you will need a simple layout in xml which defines your splash screen. A minimal one with the app logo centered is enough! This could look like this:
This will create an layout with a 200dp squared logo centered. Dont overload the screen with text, logo and other stuff! In the best case this screen will stay less than a second and the user dont have enough time to read everything!
In Java you just load your app and then proceed to the next activity as soon as possible
// Here do some bootup stuff, but nothing long loading.
Intent intent = new Intent(this, MainActivity.class);
And thats it. You may request the permissions before calling the intent, but there is no more magic. With this you have an activity as splash screen which only stays for the minimal needed time and not wasting your users time.