Android OneSignal - 点击通知后将应用置于最前面

Android OneSignal - Bring app to front after clicking notification

我在 Android 通知中使用 OneSignal。我能够收到通知并在我自己的 NotificationOpenedHandler() 中启动 activity:

String code = payload.additionalData.getString(Cons.KEY_CODE);
if(code.equalsIgnoreCase(Cons.NOTIFICATION_DETAIL_SCREEN)) {
    Intent intent = new Intent(getApplicationContext(), DetailActivity.class);
    startActivity(intent);
}

问题是,如果我在另一个应用程序中单击通知,我的应用程序将不会被带到最前面。虽然当我导航到我的应用程序时,我在上面指定的 activity 已按预期启动。

我也在清单中禁用了默认启动器:

<meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />

有人知道为什么我的应用没有被放在前面吗?

在开始 activity:

之前,您需要将其放入您的意图中

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);

然后开始 activity.

  1. 尝试设置适当的标志 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  2. StartActivity 调用之前应有您提到的代码中不存在的上下文。您也可以尝试 - 即 getApplicationContext().startActivity(intent); 没有 startActivity 将无法解析