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

pul*_*988 23 flags android android-intent

描述:

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

码:

Intent I2= new Intent(context, MyActivity.class); 
I2.putExtra(..
I2.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(I2);
Run Code Online (Sandbox Code Playgroud)

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

vip*_*pin 9

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

moveTaskToBack(true);
Run Code Online (Sandbox Code Playgroud)

  • 这导致显示白屏的时间很短并将其隐藏,是否有任何解决方案可以完全在后台打开活动而不显示任何内容? (2认同)

小智 5

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

moveTaskToBack(true);
Run Code Online (Sandbox Code Playgroud)


Dav*_*ser 5

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