在我的應用程序中,有一項服務會檢查傳入的音頻呼叫(通過互聯網)。我面臨的問題是,服務在某段時間閒置後已被操作系統殺死,但通知圖標顯示爲服務正在運行,而在電話設置中則顯示該服務當前正在運行。我在谷歌play上發現了一些應用程序,即使在低內存中服務也不會被殺死。Android:服務需要連續運行而不會被操作系統殺死。
我添加了START_STICKY以在停止時重新啓動它。我也把它作爲前景運行。
我希望我的服務不會被殺死。我可以知道它的程序嗎? (如果服務中止,它應該反映在通知和電話設置中)。
在我的應用程序中,有一項服務會檢查傳入的音頻呼叫(通過互聯網)。我面臨的問題是,服務在某段時間閒置後已被操作系統殺死,但通知圖標顯示爲服務正在運行,而在電話設置中則顯示該服務當前正在運行。我在谷歌play上發現了一些應用程序,即使在低內存中服務也不會被殺死。Android:服務需要連續運行而不會被操作系統殺死。
我添加了START_STICKY以在停止時重新啓動它。我也把它作爲前景運行。
我希望我的服務不會被殺死。我可以知道它的程序嗎? (如果服務中止,它應該反映在通知和電話設置中)。
閱讀完此問題後,立即想引用您的博客文章,這真的幫助我瞭解了android如何實現多任務以及服務如何適應這種情況。
「http://android-developers.blogspot.com/2010/04/multitasking-android-way.html」
但是,總結一下,有沒有辦法來忠實地防止被殺死,而當Android的決定,它需要回收內存,「它會做這麼殘忍,乾脆殺進程」說此服務駐留在。
因此,有兩件事 - 首先,您必須開發應用程序,以便在該服務被終止的情況下,它會恢復。沒有辦法真正保證這不會發生。基本上
http://developer.android.com/reference/android/content/ComponentCallbacks2.html#onTrimMemory(int)
,您可以開發應用程序時通知Android是即將開始殺死進程:記錄在這裏 -
其次,你應該響應存儲器事件減少這種發生的歷史的可能性,並且當您收到該通知時,通過釋放內存進行響應。
你可以發佈服務的代碼? – Aegis
在其onStartMethod()函數中調用您的服務,以持續調用它,但在處理程序或警報管理器中調用它來管理兩個調用之間的一段時間間隔。 – Androider
[我們如何防止服務被操作系統殺死?](http://stackoverflow.com/questions/9696861/how-can-we-prevent-a-service-from-being-killed-by -os) – JonasCz