Android Nougat没有在前面保留前台服务通知

时间:2017-09-21 10:39:27

标签: android notifications

已更新 - 找出此问题的根本原因。我们将正常通知显示为抬头通知,如下所示:

if (Build.VERSION.SDK_INT >= 21) {
  notificationBuilder.setVibrate(new long[0]);
}

前台服务通知不是抬头,因为它每30秒建立一次通知,我们不想要这种行为。如果我删除了设置正常通知的Heads up通知的代码,那么它可以正常工作。

原始问题:

我们的应用程序有一个前台服务,用于通过正在进行的notification显示板球比赛的持续得分更新。我们每隔30秒就会点击服务器API并更新notification。我们正在以最高优先级2构建此通知。

现在每当出现相同优先级的另一个正常notification时,正常通知就会出现在前台服务通知之上。但是,由于我们每隔30秒就建立一次前景通知,所以它再次出现在最前面。

这适用于Marshmallow和OS以下。但是在Nougat及以上版本中,一旦出现新的通知,前台服务通知就永远不会出现。这是我为构建通知而编写的代码。

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(R.mipmap.app_notification_icon);
builder.setContentIntent(targetIntent);
builder.setDeleteIntent(dismissedIntent);
builder.setCustomBigContentView(remoteViews);
builder.setContent(remoteViews);
builder.setPriority(2);
Notification notification = builder.build();
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
notification.flags |= Notification.FLAG_ONGOING_EVENT;

有没有人遇到过类似的问题?如何在Nougat及以上操作系统上始终保持前台服务通知的最佳状态。

有一个应用Universal Music App,其中通知始终位于顶部。当有新通知出现时,它们会停止运行,但随后会再次回到顶部。

0 个答案:

没有答案