【问题标题】:Android Service.startForeground does NOT respect notification id uniquenessAndroid Service.startForeground 不尊重通知 ID 的唯一性
【发布时间】:2012-03-29 14:54:37
【问题描述】:

Service.startForeground() vs NotificationManager.notify(),给出不同的行为。

当使用具有两个不同通知 ID 的 notify 时,会创建 2 个通知 - Good

startForground 执行相同操作时,一个通知会覆盖另一个通知 - Bad

测试设备:Nexus S(2.3.6) 和 Asus Transformer (4.0.3)。

任何想法如何运行可以有多个(动态编号)通知的重要(前台)服务?

【问题讨论】:

标签: android service notifications unique


【解决方案1】:

嗯,这不是最好的解决方案,但您始终可以将通知“重新分配”到已关闭的通知 ID。例如,假设您启动进程 1(前台),然后启动进程 2(使用 NotificationManager)。当进程 1 结束时,关闭进程 2 的通知并更新进程 1 的前台通知,以便现在实际显示进程 2 的进度。

这样您就不必调用stopForeground()startForeground(),这可能会导致服务在两者之间被终止(但实际上并没有检查这是真的)。​​

【讨论】:

  • Vaskevich,如果在这种情况下只涉及单个进程怎么办?您能否详细说明将通知重新分配给驳回...?
  • 我的理解是没关系,因为当您调用stopForeground() 时,Android 现在可以终止您的服务。我觉得我已经足够详细了;请把第二句话再读几遍!
猜你喜欢
  • 2012-10-10
  • 2014-11-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 2013-11-17
  • 2013-07-19
相关资源
最近更新 更多