ApplicationContext 与 Activity 中的 this 有啥区别?

作者:vkvi 来源:ITPOW(原创) 日期:2016-11-16

ApplicationContext 在 Java 开发安卓中是 getApplicationContext(),在 C# 开发安卓中是 ApplicationContext,它与 Activity 中的 this 有啥区别呢?

  • ApplicationContext 的类型是 Context。
  • Activity 中的 this 就是代表当前 Activity 实例,Activity 父类的父类也是 Context,另外 Service、Application 都是从 Context 派生出来的。

所以二者通用不会报编译错误。但是毕竟 Activity 是 Context 的派生类,所以如果使用到了派生类的方法的话,就必须用 Activity 了。

  • 但是核心区别不是这个,核心区别是:
  • ApplicationContext 是 Application 的上下文。
  • Activity 中 this 是该 Activity 的上下文。

所以讨论二者的区别,实际是在讨论 Application 与 Activity 的区别。

相关文章