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