相同:
Activity 和 Application 都是 Context 的子類
Context 從字面上理解就是上下文的意思, 在實(shí)際應(yīng)用中它也確實(shí)是起到了管理上下文環(huán)境中各個參數(shù)和變量的作用, 方便我們可以簡單的訪問到各種資源.
不同:
維護(hù)的生命周期不同.
- Activity 維護(hù)的是當(dāng)前的 Activity 的生命周期. 所以其對應(yīng)的Context也只能訪問該 Activity 內(nèi)的各種資源
- Application 維護(hù)的是整個項(xiàng)目的生命周期.
使用 context 的時候, 小心內(nèi)存泄露, 防止內(nèi)存泄露, 注意一下幾個方面:
- 不要讓生命周期長的對象引用 activity context, 即保證引用 activity 的對象要與 activity 本身生命周期是一樣的.
- 對于生命周期長的對象,可以使用 application context。
- 避免非靜態(tài)的內(nèi)部類, 盡量使用靜態(tài)類, 避免生命周期問題, 注意內(nèi)部類對外部對象引用導(dǎo)致的生命周期變化.
更多建議: