onTrimMemory()和onLowMemory()都是用來(lái)處理內(nèi)存不足的情況的回調(diào)方法,但它們之間有一些重要的區(qū)別:
- 調(diào)用時(shí)機(jī):
- onTrimMemory():在Android 4.0及更高版本中引入,當(dāng)系統(tǒng)認(rèn)為內(nèi)存不足時(shí)會(huì)調(diào)用該方法。它接收一個(gè)整數(shù)參數(shù),表示系統(tǒng)當(dāng)前的內(nèi)存狀態(tài),開(kāi)發(fā)者可以根據(jù)不同的內(nèi)存狀態(tài)來(lái)采取不同的處理措施。
- onLowMemory():在Android 1.0中就已經(jīng)存在,當(dāng)系統(tǒng)內(nèi)存嚴(yán)重不足時(shí)會(huì)調(diào)用該方法。它不接收任何參數(shù),開(kāi)發(fā)者在該方法中可以進(jìn)行一些釋放內(nèi)存的操作。
- 靈活性:
- onTrimMemory()更加靈活,可以根據(jù)系統(tǒng)的具體內(nèi)存狀態(tài)來(lái)進(jìn)行相應(yīng)的處理,例如釋放一些資源或者緩存。
- onLowMemory()則比較死板,一旦調(diào)用就表示系統(tǒng)內(nèi)存不足,開(kāi)發(fā)者只能在該方法中進(jìn)行一些固定的處理。
總的來(lái)說(shuō),onTrimMemory()比onLowMemory()更加靈活和細(xì)致,可以根據(jù)系統(tǒng)的具體內(nèi)存狀態(tài)來(lái)進(jìn)行相應(yīng)的處理。開(kāi)發(fā)者在實(shí)現(xiàn)內(nèi)存管理時(shí)可以優(yōu)先考慮使用onTrimMemory()方法。