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