安卓前台服务通知替换

3
如果我使用startForeground(myID, not)启动了一个服务,是否可以在不停止前台进程的情况下将not替换为另一个?我的意思是,我有一个服务,在服务结束之前将执行两个任务,并且我想在第一个任务结束时通知用户,而无需停止前台服务?
另外,是否可能启动一个没有通知的前台服务(即NULL)。
还有任何可用的策略代替吗?谢谢。

可以使用空通知启动前台服务,但这可能无法解决您的问题。 - IgorGanapolsky
2个回答

1
你的问题的一般答案是使用NotificationManager.notify()方法,使用与启动服务时传递给startForground()方法相同的id。
还值得注意的是:
- 更新通知不会删除服务的前台状态。 - 不能使用NotificationManager.notify取消通知。相反,您必须调用stopForeground()方法,这也将删除服务的前台状态。
请参考Luca和CommonsWare的回答下面的讨论,以及Lorne Laliberte和dmmh提供的答案。 如何在Android中更新前台服务的通知文本? 更新通知是否会删除服务的前台状态?

-2
NotificationManager中,有一个方法cancel(int)接收notificationId,因此您可以取消旧的通知并创建一个新的。

但问题是,如果我取消传递给startForeground(id,not)的ID,它会将服务从前台返回到普通服务吗? - Tibor
我不确定,但我认为NotificationManager.cancel()无法对服务产生任何影响。 - Jin35
@Tibor,你发现了什么?取消是否意味着将服务转回后台?这个答案在这里说是这样的。 - Eduardo
1
这是很久以前的事了,但我记得我使用了startForeground,它替换了通知,不需要取消先前的通知。 - Tibor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接