Context代表了当前应用的状态,可以用于获取应用的资源
Context分为两种
- Application Content
- Activity Context
两者分别为Application和Activity提供,生命周期是不同的,比如使用单例模式需要context,使用Application Context,生命周期为整个应用。使用Activity Context会导致内存泄露,无法在activity结束后无法被GC回收。
一般而言,我们创建和当天Context同生命周期的对象时,我们只需要当前组件的Context,只有当创建对象的生命周期不在当前Context生命周期内,才需要Application Context。
Application Context并不是所有Context的超集,实例化View就必须使用持有Phone Window的Activity Context。