0

我正在嘗試安全進程殺死回收內存。通過調用ActivityManager.killBackgroundProcessesIActivityManager.killAllBackgroundProcesses來殺死活動中的所有後臺進程是否安全?我知道如果一個被殺死的進程需要重新啓動,這是很痛苦的,但是安全嗎?對系統性能或用戶/系統數據而言至關重要的東西是否會丟失?從服務中清除Android中的所有後臺進程是否安全?

+0

簡而言之,是的,這有可能會丟失信息。 – poitroae 2013-03-03 14:55:38

+0

不,其他應用程序/系統的其他服務正在運行。這會使您的數據和設備處於無效狀態。 – 2013-03-03 14:58:29

+0

我建議反對它。 Android從一開始就是爲了保持這種必要而設計的 – HXCaine 2013-03-03 15:02:11

回答

1

我試圖打撈記憶

操作系統根據需要釋放系統內存將終止進程做安全的過程殺戮。你自己不需要這樣做。當你的進程運行時,有足夠的內存來運行你的進程。

是否有可能對系統性能或用戶/系統數據造成至關重要的影響?

用戶數據肯定會丟失。例如,如果他們處於表單中間,暫時切換到某個其他應用程序,並且您決定殺死所有後臺進程,則可能會丟失他們輸入的內容。

+0

謝謝你的回答。基本上,用於終止進程以釋放內存所需的操作系統解決方案對我來說並不好,因爲我不是編寫單個應用程序,而是修改框架組件。我需要釋放內存的點與活動管理器看到的點不一樣。另外,關於丟失的數據,我做了一些實驗,看起來像通常進入後臺的應用程序不會被killAllBackgroundProcesses自動殺死。我認爲這是由「重要性」屬性決定的,即如果該過程具有「IMPORTANCE_BACKGROUND」。 – smichak 2013-03-03 15:14:38

+0

@smichak:我需要釋放內存的點與活動管理器看到的點不同 - 「然後,作爲對Android的修改的一部分,您應該調整活動管理器邏輯,而不是隨機殺死所有後臺進程。 – CommonsWare 2013-03-03 15:29:34