See: https://stackoverflow.com/a/41290453/4560689 (text below)
To do this, you must create a single launch activity with No Display (using the Android NoDisplay theme) that launches the logic for switching to the main screen or for login / registration.
First, in your manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.android"> <-- Permissions etc --> <application android:icon="@mipmap/ic_launcher" android:label="@string/app_name"> <activity android:name=".onboarding.StartupActivity" android:label="@string/app_name" android:launchMode="singleInstance" android:theme="android:style/Theme.NoDisplay"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTop" /> <activity android:name=".authentication.controller.AuthenticationActivity" android:label="@string/title_sign_in" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize|stateHidden" /> <-- Other activities, services, etc --> </application>
Then your StartupActivity:
package com.example.android.onboarding; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import com.example.android.MainActivity; import com.example.android.authentication.controller.AuthenticationActivity; import com.example.android.util.ResourceUtils; public class StartupActivity extends Activity { private static final AUTHENTICATION_REQUEST_CODE = 1000; @Override protected void onCreate(Bundle savedInstanceState) { if (isLoggedIn()) { Intent startupIntent = new Intent(this, MainActivity.class); startupIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(startupIntent); finish(); } else { Intent startupIntent = new Intent(this, AuthenticationActivity.class); startActivityForResult(startupIntent, AUTHENTICATION_REQUEST_CODE); } super.onCreate(savedInstanceState); } private boolean isLoggedIn() {
Here: https://gist.github.com/chanakin/c44bf1c6a9a80d2640440b5aaa92c8ee
Chantell Osejo Dec 22 '16 at 19:35 2016-12-22 19:35
source share