2011-12-15 66 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?