2013-07-03 104 views
0

我工作的一个应用程序有三个背景:从服务弹出对话框也弹出主要活动

所有在MainActivity确实是启动和停止MonitorService,并显示一些用户指令。

MonitorService被注册为接收振铃音量的变化,如果它检测到音量变化,它会弹出一个ConfirmActivity。

ConfirmActivity弹出一个DialogFragment中的AlertDialog,询问卷更改是否是有意的,如果用户没有确认更改,则重置卷。

我看到的问题是,如果MainActivity处于停止状态,当ConfirmActivity启动时,MainActivity也会重新启动并恢复。当对话被解散时,MainActivity保持可见。我觉得这种意外和令人不安。如果MainActivity已被销毁,则ConfirmActivity按预期工作。

任何人都可以阐明为什么启动ConfirmActivity也会重新启动MainActivity?

回答

0

Android会跟踪您的应用的哪些活动按照什么顺序使用,当应用到达前台时,它会带来所有这些活动,所以如果您打开了一个MainActivity,以便用户导航离开,那么你创建了一个ConfirmActivity,MainActivity将会在ConfirmActivity后面。

要解决这个问题,请查看您在启动活动时可以在Intent中指定的标志。有几个影响如何处理活动堆栈的方式;我想你可能想用FLAG_ACTIVITY_CLEAR_TASK

+0

谢谢!那就是诀窍。 –