【问题标题】:Android notifications overlap each otherAndroid 通知相互重叠
【发布时间】:2017-06-21 11:50:04
【问题描述】:

我有两个服务,它们都彼此独立地创建通知。但是当我开始他们两个时,他们就像“战斗”(上下)的位置。我希望有人知道如何解决它。谢谢。

【问题讨论】:

  • 可能两个通知 ID 相同,尝试更改通知 ID 以解决此问题。
  • 每次都这样吗?如果他们不断改变位置,您可以设置通知的优先级。将其中一个通知的优先级设置为高于其他通知的优先级
  • notificationManager.notify("更改此 id", builder.build());尝试更改 ID。
  • 好的,修复了它,但现在我为每个服务有两个通知,因为我也想调用 startForeground()...
  • 我现在也有类似的问题。我实际上在同一个应用程序中有 6 个不同的项目可以发出独立的通知。我将每个项目的优先级设置为 0-5。优先级为 0 和 1 的行为正常,但在 2、3、4 和 5 之间存在一些疯狂的战斗。我猜优先级的限制是 2 对吧? @AndyDeveloper

标签: java android service notifications


【解决方案1】:

我遇到了类似的问题,我尝试了各种方法。我最终能够使用 sharedpreferences 解决它。尽管这不是一种相对流行的方法,但它很有帮助,因为您可以跟踪发送的每个通知。这是一个代码sn-p:

SharedPreferences prefs = getSharedPreferences(Activity.class.getSimpleName(), Context.MODE_PRIVATE);
int notificationNumber = prefs.getInt("notificationNumber", 0);


notificationManager.notify(notificationNumber, notification);
SharedPreferences.Editor editor = prefs.edit();
notificationNumber++;
editor.putInt("notificationNumber", notificationNumber);
editor.commit();

我希望这会有所帮助.. 编码愉快!!!

【讨论】:

    【解决方案2】:

    为时已晚,但解决方案是不创建 NotificationCompat.Builder 的新实例,在通知的每次更新中使用相同的构建器以避免重叠动画。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 2013-04-02
      相关资源
      最近更新 更多