意图开始活动 - 但不要带到前面

时间:2012-04-04 09:59:12

标签: android android-intent flags

说明

  • 活动 A 可见(或在后台)
  • 意图由广播收到有价值的额外内容,然后将附加内容传递给新的意图 I2 ,用于启动活动 A
  • 结果:如果活动在后台,请不要将活动带到前面

代码:

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

注意:我没有添加“android:taskAffinity”来表示..我认为你应该知道

3 个答案:

答案 0 :(得分:9)

如果您希望活动在后台,请在活动的创建中添加此行

moveTaskToBack(true);

答案 1 :(得分:5)

您可以在onCreate()方法中使用此行:

moveTaskToBack(true);

答案 2 :(得分:1)

您不想在后台启动Activity。有更好的方法来做你想要的。例如,您可以让Activity注册表接收广播Intent。即使它在后台,它也会接到onReceive()的电话。您可以通过将变量设置为Activity中的trueonPause()中的false来确定您的onResume()是否在后台。然后在onReceive()中,如果变量为true,则表示您处于后台。