java - 在通过通知开始另一项 Activity 之前完成一项 Activity

标签 java android xml notifications onesignal

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

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

此外,我还尝试了所有启动模式:正常singleTopsingleTasksingleInstance,全部产生了它们设计的结果,但是没有一个适合我的情况。

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

如果无法完成此操作,是否有任何方法可以将我的应用程序的所有 Activity (无论从何处启动)启动到同一个实例中?

最佳答案

为此,您必须使用这样的 Activity 标志从通知启动 Activity

yourintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

它将清除前台 Activity 实例,并在顶部创建新的 Activity 实例。

关于java - 在通过通知开始另一项 Activity 之前完成一项 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51807882/

相关文章:

java - String replaceAll 不替换 i++;

java - 如何解决通过 VertexAttribute.ColorUnpacked() 归属颜色的远处对象的闪烁

java - 获取 DOM 树中所有根到叶路径的列表

android - 来自 xml 的 EditText 效果

xml - 使用 ant 和 xslt 动态连接 xml 文件

java - GWT 中的多个 javascript 异常处理

java - 如何格式化字符串以打印 4 位数字和 2 位小数

android - Instagram API 有没有办法知道用户是否阻止了登录用户?

java - 无法使用 Android 以太网管理器检索有线网络的 IP 和 MAC 地址

android - 视频监听器正在运行