我正在使用Google FCM向我的应用程序发送通知。我目前正在发送数据通知,并让我的Android应用程序构造推送通知。我希望用户能够点击通知并将其路由到相应的片段/活动。
它的工作很好,除了一个问题。 用户终止应用程序 -> 接收通知 -> 点击通知 -> 应用程序启动并从通知传递数据正确到闪屏活动(我使用通知活动广播/启动意图) -> 用户在应用程序开启时接收到另一个通知 -> 用户点击通知 -> 刚刚正确启动的通知活动未能启动。
我正在想尽办法弄清楚可能出现的原因。我猜测这可能与上下文有关,因为应用是从通知中启动的,但我已经尝试过使用"this"和"getApplicationContext()",但都没有解决问题。
以下是我构建通知和待定意图的方法。
Intent notificationIntent = new Intent(this, NotificationActivity.class);
notificationIntent.putExtra(Variables.INTENT_NOTIFICATION_DATA, "dummy_data");
notificationIntent.setAction(Variables.NOTIFICATION_CLICK);
PendingIntent contentIntent = PendingIntent.getActivity(this,
0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat.Builder(this, Variables.CHANNEL)
.setContentTitle("New Notification")
.setContentText("Dummy text")
.setSmallIcon(R.drawable.notification_icon)
.setContentIntent(contentIntent)
.setAutoCancel(true)
.setOngoing(false)
.build();
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (mNotificationManager != null) {
mNotificationManager.notify(0, notification);
}
NotificationActivity
无法正常工作,您是否在该活动中?如果是,请尝试覆盖onNewIntent()
方法并查看其中的新意图详细信息,然后根据情况采取相应措施。 - Shark