Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use or opt out in Android 12 SplashScreen

The new API SplashScreen in Android 12 seems good but just like before the sample code in the documentation does not really help explaining the whole and proper implementation. There is also some cases where you might do some task during splash screen in our case this is to launch Firebase Auth so probably the best way is just to opt out on using this new featured API but according to lint warning it seems like it is mandatory and there is no way to opt out.

The application should not provide its own launch screen

Application-defined Launch Screen Starting in Android 12 (API 31+), the application's Launch Screen is provided by the system and the application should not create its own, otherwise the user will see two splashscreen. Please check the SplashScreen class to check how the Splash Screen can be controlled and customized.

How about the backward compatibility for older devices, how to handle it? Is there any codelab project to play and test with?

like image 402
Bitwise DEVS Avatar asked May 22 '21 06:05

Bitwise DEVS


People also ask

What is SplashScreen in android?

Android Splash Screen is the first screen visible to the user when the application's launched. Splash screen is one of the most vital screens in the application since it's the user's first experience with the application.

How do I turn off splash screen on android?

Basically what you've to do is override your splash screen theme in res\values-v31\themes. xml & set a transparent icon. This will get you rid of the default app icon that appears during splash when the app is launch.

How do I show splash screen only in android?

The simplest way it that You can use android:noHistory="true" in your manifest file. It's not working after the application is being closed and open again.


1 Answers

We can also use android's splash screen library - link

android {
   compileSdk 31
   ...
}

dependencies {
   ...
   implementation 'androidx.core:core-splashscreen:1.0.0-alpha02'
}

This will give splash screen options in style.xml, you just need to create 2 style.xmls 1 for android api 31 and above and one of below api 31

 <style name="Theme.CustomSplashScreenTheme" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">@color/white</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/logo</item>
    <item name="windowSplashScreenAnimationDuration">300</item>
    <item name="postSplashScreenTheme">@style/Theme.YourAppTheme</item>
</style>

Learn more about this library using this example

like image 68
Rahul Gaur Avatar answered Sep 29 '22 15:09

Rahul Gaur