我想显示FCM消息的通知。应用程序运行时通知显示正常,但如果应用程序未运行,通知会暂时显示并消失,即使用户未单击它也会消失。
我希望我的通知在用户点击时消失。 我正在谷歌搜索并尝试使用此标志来通知我:
defaults = defaults | Notification.FLAG_NO_CLEAR;
defaults = defaults | Notification.FLAG_ONGOING_EVENT;
但这无济于事,这是我的代码:
public static void showNotification(Context mContext, Intent resultIntent, String title, String text, String subtext) {
PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext, 0,
resultIntent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder mNotifyBuilder;
NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
mNotifyBuilder = new NotificationCompat.Builder(mContext)
.setContentTitle(title)
.setContentText(text)
.setTicker(title+" | "+text)
.setPriority(Notification.PRIORITY_HIGH)
.setShowWhen(true)
.setSubText(subtext)
.setSmallIcon(R.mipmap.ic_launcher);
mNotifyBuilder.setContentIntent(resultPendingIntent);
int defaults = 0;
defaults = defaults | Notification.FLAG_SHOW_LIGHTS;
defaults = defaults | Notification.DEFAULT_VIBRATE;
defaults = defaults | Notification.DEFAULT_SOUND;
defaults = defaults | Notification.FLAG_NO_CLEAR;
defaults = defaults | Notification.FLAG_ONGOING_EVENT;
mNotifyBuilder.setDefaults(defaults);
mNotifyBuilder.setAutoCancel(true);
mNotificationManager.notify(0, mNotifyBuilder.build());
}
请帮帮我。
答案 0 :(得分:0)
我认为你的问题就在这里
<强> PendingIntent.FLAG_ONE_SHOT 强>
正如此标志的官方文件所述
表示此PendingIntent只能使用一次的标志。 用于{@link #getActivity},{@ link #getBroadcast}和 {@link #getService}。
如果设置,之后 {@link #send()}被调用,它将自动进行 已取消,未来任何通过它发送的尝试都将失败。
所以尝试替换这个
PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext, 0,
resultIntent, PendingIntent.FLAG_ONE_SHOT);
以下内容:
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, resultIntent, 0);
不要在未决意图中传递任何标记
答案 1 :(得分:0)
请参阅this回答。如果您通过USB连接,servlet可能会在您在手机上看到之前抓取推送通知。