I added a splash screen to my app. The splash screen loads but then turns white for about 5 seconds before the app loads. I want to splash screen to stay on pretty much until the app comes up.
I tried following Sooraj's answer on this question, but they did not offer any explanation of their answer which doesn't work as it is written on the question. The main part which doesn't work is the line setContentView(R.layout.activity_splash);
which creates an error when I try to build my app. When I delete the line, my app crashes once installed
MainActivity.java
package com.sealsounds;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import com.sealsounds.SplashActivity;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "SealSounds";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = new Intent(this, SplashActivity.class);
startActivity(i);
}
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
return new RNGestureHandlerEnabledRootView(MainActivity.this);
}
};
}
}
SplashActivity.java
package com.sealsounds;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
public class SplashActivity extends ReactActivity {
private static int SPLASH_TIME_OUT = 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, SPLASH_TIME_OUT);
}
}