简体   繁体   中英

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

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

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

moveTaskToBack(true);

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

moveTaskToBack(true);

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM