Android Service.startForeground不尊重通知ID唯一性

Ali*_*aka 6 service notifications android unique

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

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

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

经测试的设备:Nexus S(2.3.6)和Asus Transformer(4.0.3).

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

Ole*_*ich 0

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

这样您就不必调用stopForeground()and startForeground(),这可能会导致服务在中间被终止(尽管尚未实际检查这是真的)。