Android 通知点击打开应用仅在第一次有效
Android notification click to open app only works 1st time
我有一个带通知的前台服务。我这样创建通知:
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setOngoing(true)
.setContentTitle("App name")
.setContentText(Utility.getNotificationContentText())
.setSmallIcon(R.mipmap.ic_launcher_round)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setContentIntent(pendingIntent)
.setOnlyAlertOnce(true)
.build();
在通知中,我设置了一个待定意图,如下所示:
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
当我第一次单击通知时,它按预期工作。它打开应用程序。但是,当我第二次点击通知时,没有任何反应。
不管怎样,我打开了 MainActivity.class,但我的应用程序有不同的片段。我想打开一个特定的片段,但我不确定我是否可以将 FragmentName.class 传递到意图中。
对于让通知点击每次都起作用有什么帮助吗?
设置 PendingIntet
的以下标志,以便您可以更新是否有新 PendingIntent
的当前未决意向。
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
我设法修复了它。问题是我更新通知的目的是错误的 class.
我有一个带通知的前台服务。我这样创建通知:
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setOngoing(true)
.setContentTitle("App name")
.setContentText(Utility.getNotificationContentText())
.setSmallIcon(R.mipmap.ic_launcher_round)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setContentIntent(pendingIntent)
.setOnlyAlertOnce(true)
.build();
在通知中,我设置了一个待定意图,如下所示:
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
当我第一次单击通知时,它按预期工作。它打开应用程序。但是,当我第二次点击通知时,没有任何反应。
不管怎样,我打开了 MainActivity.class,但我的应用程序有不同的片段。我想打开一个特定的片段,但我不确定我是否可以将 FragmentName.class 传递到意图中。
对于让通知点击每次都起作用有什么帮助吗?
设置 PendingIntet
的以下标志,以便您可以更新是否有新 PendingIntent
的当前未决意向。
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
我设法修复了它。问题是我更新通知的目的是错误的 class.