我问你答-简述 Application 和 Activity 的
2021-01-02 本文已影响0人
jkwen
对 Context 的理解.jpg
Activity 和 Application 的 Context 总结来说有如下几点:
相同点:
都继承自 Context,大部分场景都可以等价使用。例如,启动服务,注册,发送广播
不同点:
-
Application 继承自 ContextWrapper,Activity 继承自 ContextThemeWrapper。
-
Application 代表了整个应用的生命周期,Activity 仅自身的生命周期。
-
启动 Activity 或 Dialog 时,需要确保 Context 为 Activity 类型。
获取 Application 的 Context 的原则,能通过 getApplication() 获取的尽量通过 getApplication() ,不能的话再考虑 getApplicationContext(),如果还不能再通过自定义 Application 里的静态方法,例如 getInstance() 这种。
自定义 Application 的实现原则,能尽量减少代码就减少代码,确保符合官方的设计思路。
参考文章: