单击生成的通知将取消现有的AlertDialog

时间:2014-05-09 10:01:26

标签: android notifications android-alertdialog

我正在构建一个处理传入事件的Android应用程序。

当我收到1个此类事件时,如果我的应用程序位于前台,我会立即生成需要用户注意的AlertDialog。

但是,当应用程序在后台时,即使已生成AlertDialog,用户也看不到这一点。如果我手动返回我的应用程序,我会看到AlertDialog并且我可以单击“确定”或取消。

我尝试生成当我的应用在后台时显示的通知对话框。这有效,我把PendingIntent作为MainActivity。当我点击通知时,它会将我带回我的应用程序。但是,AlertDialog不再存在了。

比较点击通知和手动返回我的应用的日志,我注意到了一些差异。

当我手动返回我的应用程序时,我看到MainActivity立即恢复。但是,当我点击通知时,它会在最终恢复MainActivity之前首先返回生成通知的类的构造函数,其他一些类/片段。

有谁知道为什么会这样?

感谢。

2 个答案:

答案 0 :(得分:0)

看来,您正在从通知中恢复时创建新的app实例 所以,在清单中添加它可能会有所帮助:

android:launchMode="singleInstance"

在其他情况下,它会恢复,因此对话将被保留。

答案 1 :(得分:0)

前台通知的默认行为是重新启动活动。尝试为PendingIntent设置您的意图标志以使用它:

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

然后,这将与您通过应用导航到活动时的行为相同。

来自docs

  

如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动该活动。