2011-04-13 132 views

回答

8

setForeground()已棄用,我認爲根本無法在較新版本的Android上使用。您需要更新的startForeground()

引用自己從one of my books

然而,一些服務會被用戶錯過 如果它們神祕消失 。例如,默認音樂 播放器應用程序隨附的 Android使用的服務爲實際的 音樂播放。這樣,用戶可以 聽音樂,同時繼續到 將其手機用於其他目的。 該服務僅在用戶 進入並按下 中的停止按鈕時停止音樂播放器活動。如果這個 服務意外關閉了 ,那麼用戶可能會懷疑 出了什麼問題。

像這樣的服務可以聲明 本身作爲 「前景」的一部分。這將導致他們的 優先級上升,並使他們更少可能被內存不足衝出。 權衡是服務必須 保持Notification,所以用戶 知道這項服務是要求 前景的一部分。而且,理想情況下, Notification提供了一個簡單的 路徑返回到某些活動,其中 用戶可以停止該服務。

要做到這一點,在你的 服務(或任何其他地方的 服務的生命它將使意義), 呼叫startForeground()onCreate()。這需要 Notification和本地唯一 整數,就像notify()方法 在NotificationManager。它會導致 Notification出現並將 服務移動到前臺優先級。 稍後,您可以撥打 stopForeground()恢復正常 優先。

+0

是的,[Service.setForeground()現在不推薦使用,2.0中不做任何事情](http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html )。 – kreker 2012-03-01 19:31:30

相關問題