2011-12-15 65 views
3

如果我使用startForeground(myID,不是)启动服务,可以在不停止前台进程的情况下替换另一个服务吗?我的意思是,我有一个服务在服务结束前会连续执行两个任务,并且我希望在第一次结束时通知用户,而不需要停止前台服务?Android前台服务通知替换

另外,是否有可能在没有通知(即NULL)的情况下启动前台服务。

任何stretegy我可以使用,而不是?谢谢。

+0

它可以用NULL开始通知前台服务,但可能不会解决你的问题。 – 2017-08-29 20:32:30

回答

-1

NotificationManager有方法cancel(int)接收notificationId,所以你可以取消旧的通知并创建一个新的通知。

+0

但问题是如果我取消传递给startForeground(id,not)的ID,它是否会将服务从前台返回到正常服务...... – Tibor 2011-12-15 14:22:49

1

您的问题的一般答案是使用NotificationManager.notify()方法在启动服务时使用传递给startForground()方法的相同ID。

另外值得注意:

  • 更新通知将不会删除该服务的前景 状态。
  • 您无法通过使用 NotificationManager.notify取消通知。相反,您必须调用stopForeground() ,这也会删除服务的前台状态。

请参考卢卡给出的答案和CommonsWare的答案下的讨论,以及Lorne Laliberte和dmmh给出的答案。

How do I update the notification text for a foreground service in Android?

Does updating a Notification remove a Service's foreground status?