问题
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
回答1:
if you want your activity to be in background add this line in the oncreate of activity
moveTaskToBack(true);
回答2:
You can use this line in your onCreate()
method:
moveTaskToBack(true);
回答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.
来源:https://stackoverflow.com/questions/10008879/intent-to-start-activity-but-dont-bring-to-front