2015-03-31 69 views
0

我的應用程序中有一項服務會自動中止。我測試了我的應用程序在Android 4.0(冰淇淋三明治),它運行良好,但是當我在Android 4.4.2中運行相同的應用程序時,服務會自動終止。任何人都可以告訴我服務被自動殺死的場景嗎?Android服務被取消

+0

您收到了哪些錯誤消息?你能得到一個logcat輸出嗎? – 2015-03-31 01:35:37

+0

我們不打算在沒有代碼的情況下弄清楚這一點。 – 2015-03-31 01:44:26

回答

0

Android系統在RAM處於壓力狀態(內存不足)時會終止進程,它需要通過殺死當前在後臺運行的應用程序的最低優先級來回收RAM資源。所以你可以將Service的優先級設置爲前景,儘管這個線程在後臺運行。

docs

已啓動的服務可以使用startForeground(INT,通知)API把服務前臺狀態,當系統認爲它是一些用戶正在積極瞭解因此當內存不足時不會成爲殺人的候選人。 (理論上這種服務在當前前臺應用程序的極端內存壓力下可能會被殺死,但實際上這應該不是問題。)

0

要防止服務被android內存管理所殺應該從特定服務啓動一個正在進行的通知,並在您的服務結束時將其解僱