Skip to main content

Android activity Launch modes


Launch modes defines how an instance of an activity is associated with the current task. You can define different launch modes as below,

1. Standard
2. Single Top
3. Single Task
4. Single Instance

1. Standard :-
Default activity mode will be Standard.Activity instance will be created every time for each new intent.

2. Single Top :-
 Single top activity will be created if the activity is not on the top of the stack , if activity is on the top of the stack OnNewIntent() of activity gets called otherwise new instance will be created and pushed in to the stack.

3. Single Task :-
Instance of the activity will be created only if it doesn't exist in the system otherwise it will be moved to front and onNewIntent() will be called.

4. Single Instance :-
Same as single task, any activity launched from this activity will start the new task always so single instance activity will not share the same stack with other activities, so OnNewIntent() will be called for every intent.

Define the launch modes in Android Manifest file as below,

<activity
            android:launchMode="singleTop" | "standard" |"singleInstance"|"singleTask"
       
        </activity>



Comments

Popular posts from this blog

Launch an Android application on Bootup

If you want to start an android application on device restarts, you need to listen for BOOT_COMPLETED broadcast in the manifest file and launch the Launcher activity in onreceive of BOOT_COMPLETED broadcast receiver. Follow below steps to launch activity on device boot up :- 1. Register for Boot completed receiver in Android Manifest file. Add below Permission to receive BOOT_COMPLETED broadcast, <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> Register for Boot completed broadcast receiver , <receiver android:name="AppAutostartReceiver" android:enabled="true" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 2. Add custom Broadcast receiver in the application, public class AppAutostartReceiver extends BroadcastReceiver { @Override public void onReceive(Context cont

Whitelist an android application on android 6.0/Marshmallow

Whitelist wont disable doze mode for your app, however can use network and hold wake lock. Whitelist an android application through code, boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName()); if(!isIgnoringBatteryOptimizations){   Intent intent = new Intent();   intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);   intent.setData(Uri.parse("package:" + getPackageName()));   startActivityForResult(intent, MY_IGNORE_OPTIMIZATION_REQUEST);   }                             Check for the result, @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {     if (requestCode == MY_IGNORE_OPTIMIZATION_REQUEST) {          PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);          boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());          if(isIgnoringBatteryOptimizations){             // Ignoring battery opti