當Android系統出現系統資源不足時,會殺死(kill)一些進程,但是這不是隨機的,而是具有一定規則的:
1、空進程
這是Android系統優先殺死的,因為此時該進程已經沒有任何用途。
2、后台進程
包含不可見的Activity,即跳轉到其他activity后,由於資源不足,系統會將原來的activity殺死(即跳轉的來源)
3、服務進程
即Service,當系統資源不足時,系統可能會殺掉正在執行任務的Service。因此在Service執行比較耗時的操作,並不能保證一定能執行完畢。
4、可見進程
當前屏幕上可以看到的activity,例如顯示一個對話框的activity,那么對話框變成了前台進程,而調用他的activity是可見進程,但並不是前台的。
5、前台進程
當前處於最前端的activity,也就是Android最后考慮殺死的對象。一般來說,前台進程Android系統是不會殺死的,只有當前4個都殺掉資源依舊不夠才可能會發生。
這就是Android系統釋放資源的優先順序,那么反過來就是他們的優先級,即前台進程是最先獲取資源,最后釋放的。