2015-02-24 49 views
0
时通知进来

弹出一个模式的活动,主要活动是在后台(没有显示)安卓:如何从后台活动,这仍然在后台

我希望它弹出一个模式/对话活动,但主要的活动总是显示为模态的背景...

基本上我所做的是使用

onReceiveNotificatioin(){ 
      Intent mIntent = new Intent(context, PopupActivity.class); 
      mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      mIntent.putExtra("msg", alert); 
      startActivity(mIntent); 
} 

如何防止脱颖而出以及主要活动?

回答

5

您可以随时通过设置标志FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_NEW_TASK从堆栈中删除以前的活动。例如:

onReceiveNotificatioin(){ 
      Intent mIntent = new Intent(context, PopupActivity.class); 
      mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
      mIntent.putExtra("msg", alert); 
      startActivity(mIntent); 
} 
+0

试了一下,如果我添加了明确的任务,它会清除我的主要活动任务...并完成它,只留下弹出 – 2015-02-24 07:29:11

+0

这就是你想要的,是不是 – 2015-02-24 18:09:17

+0

谢谢。我终于使用了“singleInstance”启动模式,因为弹出窗口需要完成自己的任务,并且没有其他任何活动会被叠加到它上面,我认为这很好。 – 2015-02-24 23:18:36

0

我终于用“singleInstance” launchmode,因为弹出需要在自身任务,并没有其他的活动将被堆放到它,我觉得这是好的。

我不知道为什么“singletask”和Intent.FLAG_ACTIVITY_NEW_TASK不起作用, 主要活动在后台总是表现出