在从通知开始另一个之前完成 activity

Finish an activity before starting the other one from notification

我已经在我的 Android 应用程序中实现了 OneSignal 推送通知。我将发送带有 URL 的推送通知作为附加到它们的有效载荷。 URL 发送的意图可以由我的应用程序或浏览器的另一个 activity 打开。因此,当我的应用程序的某些 activity 处于前台并且我选择在我的应用程序中打开通知时,我的应用程序有 2 个实例。因此,即使用户点击现在最上面的 activity 中的退出,已经打开的那个仍然存在。基本上,用户必须退出我的应用程序两次(如果这种情况继续发生,可能会退出更多次)。

那么,当用户点击通知(并选择在我的应用程序而不是浏览器中打开它)时,有什么方法可以让我完成前台 Activity 然后继续..?

此外,我已经尝试了所有启动模式:normalsingleTopsingleTasksingleInstance,都产生了它们设计的结果,但是, none 可能适合我的情况。

我不知道应该在此处包含哪个代码。

如果无法做到这一点,是否有任何方法可以将我的应用程序的所有活动(无论从何处启动)启动到同一个实例中?

为此,您必须使用 activity 标志从通知开始 activity,如下所示

yourintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

它将清除前景 activity 实例并在顶部创建新的 activity 实例。