Am trying to create a webview app displaying a splash screen once after the first lunch. Initially once i open the app the splash screen will show up then after 5 seconds it will load main activity VaultActivity
, but after i have added the line of code to check if splash screen ‘SplashScreen’ has been launched before, the app stopped loading VaultActivity
using the SPLASH_TIME_OUT
i set and also the splash screen still shows up anytime i lunch the app.
Initially
public class SplashScreen extends Activity { private static int SPLASH_TIME_OUT = 5000; // Splash screen timer @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); new Handler().postDelayed(new Runnable() { @Override public void run() { // Start main activity Intent intent = new Intent(SplashScreen.this, VaultActivity.class); startActivity(intent); finish(); } }, SPLASH_TIME_OUT); } }
Currently
public class SplashScreen extends Activity { private static int SPLASH_TIME_OUT = 5000; // Splash screen timer @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); if(pref.getBoolean("activity_executed", false)){ new Handler().postDelayed(new Runnable() { @Override public void run() { // Start main activity Intent intent = new Intent(SplashScreen.this, VaultActivity.class); startActivity(intent); finish(); } }, SPLASH_TIME_OUT); } else { SharedPreferences.Editor ed = pref.edit(); ed.putBoolean("activity_executed", true); ed.commit(); } } }
My Manifest
<activity android:name=".SplashScreen" android:launchMode="singleTask" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".VaultActivity" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="example.com" android:pathPrefix="/androidmobile" /> </intent-filter> </activity>
Advertisement
Answer
🙂 you need just adding startActivity in else section.
public class SplashScreen extends Activity { private static int SPLASH_TIME_OUT = 5000; // Splash screen timer @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); final SharedPreferences.Editor ed = pref.edit() if(pref.getBoolean("activity_executed", false)){ //ed.putBoolean("activity_executed", true); //ed.commit(); Intent intent = new Intent(SplashScreen.this, VaultActivity.class); startActivity(intent); finish(); } else { new Handler().postDelayed(new Runnable() { @Override public void run() { // Start main activity Intent intent = new Intent(SplashScreen.this, VaultActivity.class); startActivity(intent); ed.putBoolean("activity_executed", true); ed.commit(); finish(); } }, SPLASH_TIME_OUT); } } }