我正在構建一個應用程序,我需要一個永遠不會像android系統服務那樣停止的服務。我可以讓系統使用start_not_sticky重新啓動我的服務,但不能保證我的服務永遠不會停止。所以我的想法是,如果有任何方式可以廣泛接收我的服務將關閉時,我可以重新啓動服務。有什麼方法可以接收?服務關閉時收到
Q
服務關閉時收到
0
A
回答
1
的文檔最好的解釋是:
使用
startForeground(int, Notification)
API把服務前臺狀態,當系統認爲它是一些用戶正在積極瞭解的,因此不給候選人內存不足時會造成死亡。 (從目前的前臺應用程序在極端內存壓力下,該服務在理論上仍然有可能被殺死,但實際上這應該不是問題。)注意這意味着大部分時間您的服務正在運行如果系統處於高內存壓力下,它可能會被系統殺死。如果發生這種情況,系統將稍後嘗試重新啓動服務。這樣做的一個重要結果是,如果您實現onStartCommand()來安排異步或在另一個線程中完成工作,那麼您可能希望使用
START_FLAG_REDELIVERY
讓系統爲您重新提供一個意圖,以便它不會丟失如果在處理它
+0
實際上我在我的一個應用程序中使用了startForeground()方法,但不幸的是它不能很好地工作,仍然有時候我的服務通過系統停止。然後我用警報解決了這個問題,當我需要做一些工作時觸發警報。如果您考慮電池消耗,您知道警報是昂貴的。這就是爲什麼我需要更好的東西。 –
相關問題
- 1. 回收服務關閉時間?
- 2. 如何在HTTP服務關閉時收到通知?
- 3. 當屏幕關閉時服務關閉
- 4. Windows服務關閉
- 5. Silverlight - 關閉服務
- 6. 當我的應用服務器端口關閉時收到通知
- 7. 當屏幕關閉時,Firebase消息傳遞服務沒有收到消息
- 8. 收到COMException(0x80010108 - RPC_E_DISCONNECTED)時關閉Excel.Workbook
- 9. 如何在系統關閉時關閉服務?
- 10. Weblogic服務器在關閉腳本窗口時關閉?
- 11. 服務完成時關閉通知
- 12. 啓動服務時強制關閉
- 13. Web服務關閉時顯示消息
- 14. Jersey Rest服務何時啓動/關閉?
- 15. 關閉tomcat服務器時出錯
- 16. 到服務器共享連接關閉
- 17. 如何讓服務器啓動時關閉couchase服務器?
- 18. 密集的GC活動會關閉服務臨時服務
- 19. 關閉服務器TensorFlow
- 20. 關閉Java RMI服務器
- 21. Ruby TCP服務器關閉
- 22. MKMapView關閉位置服務
- 23. MediaPlayer服務強制關閉
- 24. 關閉連接服務器
- 25. PSQL:服務器關閉unexepectedly
- 26. fork() - 關閉服務器
- 27. Android:關閉服務屏幕
- 28. 關閉XMLRPC服務器
- 29. 服務器場關閉
- 30. 發送數據到網絡服務器時強行關閉
你的服務被殺害我覺得你可以做的onDestroy一些事情()........... – viv
你爲什麼不跑你的服務的前景? startForeground()可供您運行關鍵服務。 – PH7