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

时间:2017-03-27 17:59:17

标签: android onesignal

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

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

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

我已经在我的清单中禁用了默认启动器:

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

任何人都知道为什么我的应用程序没有被带到前面?

2 个答案:

答案 0 :(得分:2)

  1. 尝试使用意图intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  2. 设置适当的标记
  3. StartActivity调用应该在您提到的代码中没有的上下文之前。您也可以尝试 - 即getApplicationContext().startActivity(intent);没有启动活动就不会得到解决

答案 1 :(得分:0)

在开始活动之前,您需要将其置于您的意图中:

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

然后开始活动。