context类型
- application
- service
- activity
getApplication()和getApplicationContext()的区别
- 两个方法获取到的是同一个对象
- 但是getApplication()的作用域比较小,只能在Activity和Service中使用
- 在其他地方就要使用getApplicationContext(),比如在BroadCastreceiver中。
getBaseContext()
- 这个方法返回一个ContextImpl对象,这个对象才是Context的实现类,Activity,Application只是做了一些接口封装。
- 在ContextWarpper中通过attachBaseContext()传入ContextImpl对象,继而在Application,Activity,Service中调用其方法。
- 在Application中,要在attachBaseContext()执行后,才能去调用Context的方法。