边听音乐边阅读吧~~
简单理解Context
在编程术语中,它是对当前工作单元的行为有任何影响的较大的周边部分。例如所使用的运行环境、环境变量、实例变量、局部变量、其他类的状态、当前环境的状态等等。
在一些API中,你会在接口/类中看到这个名称,例如Servlet的ServletContext、JSF的FacesContext、Spring的ApplicationContext、Android的Context、JNDI的InitialContext等等。它们通常都遵循Facade模式,该模式让最终用户不需要了解环境细节抽象到单个接口/类中。
源码中的Context
Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型,是一个统领一些资源(应用程序环境变量等)的上下文。就是说,它描述一个应用程序环境的信息(即上下文);是一个抽象类,Android提供了该抽象类的具体实现类;通过它我们可以获取应用程序的资源和类(包括应用级别操作,如启动Activity,发广播,接受Intent等)。既然上面Context是一个抽象类,那么肯定有他的实现类,我们在Context的源码中通过IDE可以查看到他的子类最终可以得到如下关系图:
Context能干什么
Context到底可以实现哪些功能呢?这个就实在是太多了,弹出Toast、启动Activity、启动Service、发送广播、操作数据库等等都需要用到Context。
Context作用域
领取专属 10元无门槛券
私享最新 技术干货