Context
它描述的是一个应用程序环境的信息即当前对象在程序中所处的一个环境,一个与系统交互的过程。
Context在Android中的怎么表示的呢?一个Activity就是一个Context,一个Service也是一个Context,Application也是一个Context。
通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受 Intent,信息等。
Context类本身是一个纯abstract类,它有两个具体的实现子类:ContextImpl和ContextWrapper。
一个应用有几个context
Context数量=Activity数量+Service数量+1(Application)
如何获取Context
通常我们想要获取Context对象,主要有以下四种方法:
1:View.getContext,返回当前View对象的Context对象,通常是当前正在展示的Activity对象。
2:Activity.getApplicationContext,获取当前Activity所在的(应用)进程的Context对象,通常我们使用Context对象时,要优先考虑这个全局的进程Context。
3:ContextWrapper.getBaseContext():用来获取一个ContextWrapper进行装饰之前的Context,可以使用这个方法,这个方法在实际开发中使用并不多,也不建议使用。
4:Activity.this 返回当前的Activity实例,如果是UI控件需要使用Activity作为Context对象,但是默认的Toast实际上使用ApplicationContext也可以。