32

描述:

  • 活动A可见(或在后台)
  • Intent I被广播接收到有价值的 extra,然后将 extra 传递给一个新的 Intent I2,该 Intent 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”..我想你应该知道

4

3 回答 3

14

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

moveTaskToBack(true);
于 2012-04-04T10:04:36.750 回答
7

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

moveTaskToBack(true);
于 2012-04-04T10:09:32.187 回答
4

您不想Activity在后台启动。有更好的方法来做你想做的事。例如,您可以让您的Activity寄存器接收广播IntentonReceive()即使它在后台,它也会得到调用。您可以通过将变量设置为in和 to in来确定您Activity是否在后台。然后在,如果变量是你在后台。trueonPause()falseonResume()onReceive()true

于 2016-06-13T18:41:15.757 回答