Intent to start activity - but don't bring to front

30,036

Solution 1

if you want your activity to be in background add this line in the oncreate of activity

moveTaskToBack(true);

Solution 2

You can use this line in your onCreate() method:

moveTaskToBack(true);

Solution 3

You don't want to start an Activity in the background. There are better ways to do what you want. You can have your Activity register to receive the broadcast Intent, for example. It will get the call to onReceive() even if it is in the background. You can determine if your Activity is in the background by setting a variable to true in onPause() and to false in onResume(). Then in onReceive(), if the variable is true you are in the background.

Share:
30,036
pulancheck1988
Author by

pulancheck1988

Updated on June 14, 2020

Comments

  • pulancheck1988
    pulancheck1988 about 4 years

    Description:

    • Activity A is visible (or in the background)
    • Intent I is received by a broadcast with valuable extras and then passes the extras to a new Intent I2 that will be used to start activity A.
    • Outcome: Do not bring activity to front if activity is in background.

    Code:

    Intent I2= new Intent(context, MyActivity.class); 
    I2.putExtra(..
    I2.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // | Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(I2);
    

    Note: I added no "android:taskAffinity" to manifest.. i thought you should know