2012-04-09 75 views
4

我知道前臺服務「不太可能會殺死」行爲。根據Android文檔:前臺服務和PARTIAL_WAKE_LOCK之間的關係

它仍然是理論上可能的服務中下 極端的內存壓力從目前的前臺應用程序殺死,但 在實踐中,這不應該是一個問題。

我認爲這解決了大多數情況下的低內存問題。但是我找不到任何有關前臺服務運行時CPU是否進入睡眠狀態的文檔。

  1. 是否前臺服務自動獲取PARTIAL_WAKE_LOCK或一個具有在需要時顯式調用呢?

  2. 是否有任何方法檢查/記錄哪些應用程序/服務正在使用PARTIAL_WAKE_LOCK?

回答

2

的Android 前景服務和PARTIAL_WAKE_LOCK無關彼此。

前臺服務 - >它告訴操作系統將您的服務置於最高優先級隊列中。如果操作系統因爲任何原因需要內存,它會在最後終止你的服務,並且它將以最低優先級的隊列開始(我認爲有5個優先級隊列,並且前景最高)。

PARTIAL_WAKE_LOCK - >它告訴操作系統在設備進入睡眠狀態時不要讓CPU進入睡眠狀態(每當發生這種情況時)。因此,即使您有前臺服務,如果設備進入睡眠狀態,CPU也可能會進入睡眠狀態(如果某個其他應用程序獲取了PARTIAL_WAKE_LOCK,則可能不會)。 我不認爲有一種方法可以檢查哪些應用程序以編程方式獲取了喚醒鎖,但是您可以將設備插入DDMS,並且在有人獲取wake_lock時您將看到PowerManager日誌。

希望它有幫助!