Java 启动对话框样式活动时出现意外行为

Java 启动对话框样式活动时出现意外行为,java,android,android-activity,android-intent,Java,Android,Android Activity,Android Intent,我从WhatsApp中观察到这样的行为:当一条新消息到达时,WhatsApp将启动一个对话式活动,用户可以取消或确认该活动 因此,我在我的应用程序中添加了一个类似的对话框样式的活动。出于测试目的,我还添加了一个报警管理器和一个报警接收器,以便报警接收器每10秒启动一次此活动 我用于启动对话框样式活动的代码是: Intent dialogIntent = new Intent(MyApplication.sharedApplication, MyDialogStyleActivity.cla

我从WhatsApp中观察到这样的行为:当一条新消息到达时,WhatsApp将启动一个对话式活动,用户可以取消或确认该活动

因此,我在我的应用程序中添加了一个类似的对话框样式的活动。出于测试目的,我还添加了一个报警管理器和一个报警接收器,以便报警接收器每10秒启动一次此活动

我用于启动对话框样式活动的代码是:

   Intent dialogIntent = new Intent(MyApplication.sharedApplication, MyDialogStyleActivity.class);
   dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   MyApplication.sharedApplication.startActivity(dialogIntent);
如果我的应用程序没有启动,一切看起来都很好。对话框活动将显示,后面是主屏幕,就像WhatsApp的行为一样

但是有一个问题,如果我的应用程序已经启动并放在后台,然后警报触发了对话活动的启动,在启动对话活动之前,我的应用程序的主要活动将返回前台并显示

我很困惑,我现在想要的是,即使我的应用程序已经启动,当有东西触发对话框样式的活动时,只有这个对话框样式的活动会显示,没有主活动或任何其他不相关的活动


有人可以帮忙吗?

您的应用程序维护一个活动堆栈。因此,您的主要活动A和对话框活动B在应用程序的活动堆栈中表示为A->B

当您的应用程序启动并置于后台时。当您的对话活动被调用并被带到前台时,您的主要活动A仍然处于活动状态,因此也将显示出来。也许您可以在启动后的活动(dialogActivity)中调用“finish()”,以确保A已完成并离开