我问你答-简述 Application 和 Activity 的 Context

对 Context 的理解.jpg

Activity 和 Application 的 Context 总结来说有如下几点:

相同点:

都继承自 Context,大部分场景都可以等价使用。例如,启动服务,注册,发送广播

不同点:

  1. Application 继承自 ContextWrapper,Activity 继承自 ContextThemeWrapper。

  2. Application 代表了整个应用的生命周期,Activity 仅自身的生命周期。

  3. 启动 Activity 或 Dialog 时,需要确保 Context 为 Activity 类型。

获取 Application 的 Context 的原则,能通过 getApplication() 获取的尽量通过 getApplication() ,不能的话再考虑 getApplicationContext(),如果还不能再通过自定义 Application 里的静态方法,例如 getInstance() 这种。

自定义 Application 的实现原则,能尽量减少代码就减少代码,确保符合官方的设计思路。

参考文章:

Android Context完全解析,你所不知道的Context的各种细节

你可能感兴趣的:(我问你答-简述 Application 和 Activity 的 Context)