单击通知时应用程序未启动或调用 onNewIntent
Application not launching or calling onNewIntent when notification clicked
我使用 GCM 成功发送了通知,但是当我点击它们时,没有任何反应。这是我的侦听器中的代码,我可以验证它是否正在执行,但是当我在 HomeActivity
中的 onCreate
和 onNewIntent
方法上放置断点时,它们永远不会被命中。此外,如果该应用程序不是 运行,我仍然会收到通知,但不会启动该应用程序。我尝试了 here and here 的建议以及 Intent 标志的几种不同组合。我错过了什么吗?请询问您是否需要我 post 更多代码。
代码来自我的GcmListenerService
notificationBuilder = new NotificationCompat.Builder(this)
.setContentTitle(getString(appNameID))
.setContentText(payload)
.setSmallIcon(iconID)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), bigIconID));
Intent resultIntent = new Intent(this, HomeActivity.class);
resultIntent.putExtra(HomeActivity.NOTIFICATION_ID_KEY, notificationID);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
resultIntent.setAction(HomeActivity.NOTIFICATION_ACTION);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notificationBuilder.setContentIntent(resultPendingIntent);
// Set Vibrate, Sound and Light
int defaults = 0;
defaults = defaults | Notification.DEFAULT_LIGHTS;
defaults = defaults | Notification.DEFAULT_VIBRATE;
defaults = defaults | Notification.DEFAULT_SOUND;
notificationBuilder.setDefaults(defaults);
notificationBuilder.setAutoCancel(true);
// Post a notification
notificationManager.notify(NOTIFY_ID, notificationBuilder.build());
您是否在清单中添加了 android:launchMode="singleTop"。并添加 intent.FLAG_ACTIVITY_SINGLE_TOP
已更新
将 android:exported="true" 添加到您的清单中,这可能会解决您的问题。
我使用 GCM 成功发送了通知,但是当我点击它们时,没有任何反应。这是我的侦听器中的代码,我可以验证它是否正在执行,但是当我在 HomeActivity
中的 onCreate
和 onNewIntent
方法上放置断点时,它们永远不会被命中。此外,如果该应用程序不是 运行,我仍然会收到通知,但不会启动该应用程序。我尝试了 here and here 的建议以及 Intent 标志的几种不同组合。我错过了什么吗?请询问您是否需要我 post 更多代码。
代码来自我的GcmListenerService
notificationBuilder = new NotificationCompat.Builder(this)
.setContentTitle(getString(appNameID))
.setContentText(payload)
.setSmallIcon(iconID)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), bigIconID));
Intent resultIntent = new Intent(this, HomeActivity.class);
resultIntent.putExtra(HomeActivity.NOTIFICATION_ID_KEY, notificationID);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
resultIntent.setAction(HomeActivity.NOTIFICATION_ACTION);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notificationBuilder.setContentIntent(resultPendingIntent);
// Set Vibrate, Sound and Light
int defaults = 0;
defaults = defaults | Notification.DEFAULT_LIGHTS;
defaults = defaults | Notification.DEFAULT_VIBRATE;
defaults = defaults | Notification.DEFAULT_SOUND;
notificationBuilder.setDefaults(defaults);
notificationBuilder.setAutoCancel(true);
// Post a notification
notificationManager.notify(NOTIFY_ID, notificationBuilder.build());
您是否在清单中添加了 android:launchMode="singleTop"。并添加 intent.FLAG_ACTIVITY_SINGLE_TOP
已更新
将 android:exported="true" 添加到您的清单中,这可能会解决您的问题。