我正在嘗試安全進程殺死回收內存。通過調用ActivityManager.killBackgroundProcesses
或IActivityManager.killAllBackgroundProcesses
來殺死活動中的所有後臺進程是否安全?我知道如果一個被殺死的進程需要重新啓動,這是很痛苦的,但是安全嗎?對系統性能或用戶/系統數據而言至關重要的東西是否會丟失?從服務中清除Android中的所有後臺進程是否安全?
回答
我試圖打撈記憶
操作系統根據需要釋放系統內存將終止進程做安全的過程殺戮。你自己不需要這樣做。當你的進程運行時,有足夠的內存來運行你的進程。
是否有可能對系統性能或用戶/系統數據造成至關重要的影響?
用戶數據肯定會丟失。例如,如果他們處於表單中間,暫時切換到某個其他應用程序,並且您決定殺死所有後臺進程,則可能會丟失他們輸入的內容。
謝謝你的回答。基本上,用於終止進程以釋放內存所需的操作系統解決方案對我來說並不好,因爲我不是編寫單個應用程序,而是修改框架組件。我需要釋放內存的點與活動管理器看到的點不一樣。另外,關於丟失的數據,我做了一些實驗,看起來像通常進入後臺的應用程序不會被killAllBackgroundProcesses自動殺死。我認爲這是由「重要性」屬性決定的,即如果該過程具有「IMPORTANCE_BACKGROUND」。 – smichak 2013-03-03 15:14:38
@smichak:我需要釋放內存的點與活動管理器看到的點不同 - 「然後,作爲對Android的修改的一部分,您應該調整活動管理器邏輯,而不是隨機殺死所有後臺進程。 – CommonsWare 2013-03-03 15:29:34
- 1. 從後臺代碼中的SharePoint清除服務器緩存
- 2. 如何在android中清除後臺進程?
- 3. 後臺線程中的Android服務
- 4. 後臺服務是新進程?
- 5. 從後臺線程更改CALayer的屬性是否安全?
- 6. Android中的java.util.Observable是否線程安全?
- 7. 刪除SQL服務器中的聚集索引是否安全?
- 8. 刪除家庭文件夾中的所有ACL是否安全?
- 9. 在升級過程中,android是否清除/刪除所有用戶首選項?
- 10. 如何停止android中的所有後臺進程?
- 11. 在服務器上的後臺進程中運行進程
- 12. iOS後臺服務(如在Android中)啓用所有時間
- 13. 在迭代過程中從SortedList中刪除是否安全
- 14. Android:是否可以在後臺服務中使用Firebase Remote Config?
- 15. 具有後臺任務的Android服務
- 16. Android後臺服務
- 17. Android後臺服務
- 18. Android後臺服務
- 19. Android後臺服務
- 20. 清除任務中的所有活動?
- 21. Android FragmentTransaction.replace()是否是線程安全的?
- 22. 清除android中的所有活動
- 23. Delphi XE5中的Android後臺服務
- 24. 從用戶輸入中刪除所有引號是否安全注入?
- 25. 進程線程是否安全?
- 26. Android的後臺服務程序
- 27. 是否可以從另一臺服務器「中繼」WCF服務?
- 28. 從android中的類中的後臺服務訪問對象
- 29. 檢測主進程是否已從後臺進程退出
- 30. dynamic_casting後刪除指針是否安全?
簡而言之,是的,這有可能會丟失信息。 – poitroae 2013-03-03 14:55:38
不,其他應用程序/系統的其他服務正在運行。這會使您的數據和設備處於無效狀態。 – 2013-03-03 14:58:29
我建議反對它。 Android從一開始就是爲了保持這種必要而設計的 – HXCaine 2013-03-03 15:02:11