0

我正在开发一个具有三个上下文的应用程序:

MainActivity 所做的只是启动和停止 MonitorService,并显示一些用户指令。

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

ConfirmActivity 会在 DialogFragment 中弹出一个 AlertDialog 以询问是否有意更改音量,如果用户不确认更改,则重置音量。

我看到的问题是,如果 MainActivity 处于 Stopped 状态,当 ConfirmActivity 启动时,MainActivity 也会重新启动并恢复。当对话框关闭时,MainActivity 仍然可见。我觉得这出乎意料和令人不安。如果 MainActivity 已被销毁,则 ConfirmActivity 将按预期工作。

谁能解释为什么启动 ConfirmActivity 也会重新启动 MainActivity?

4

1 回答 1

0

Android 会跟踪您的应用程序的哪些活动以什么顺序被使用,当应用程序进入前台时,它会带来所有这些活动,因此如果您打开了用户导航离开的 MainActivity,那么您创建一个 ConfirmActivity,MainActivity 就在 ConfirmActivity 的后面。

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

于 2013-07-03T21:58:01.110 回答