Context,中文直译为“上下文”,SDK中对其说明以下: 函数
一、它描述的是一个应用程序环境的信息,即上下文。
二、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类。
三、经过它咱们能够获取应用程序的资源和类,也包括一些应用级别操做,例如:启动一个Activity,发送广播,接受Intent信息等。this
各类context及区别:spa
1.getApplicationContext():返回在应用程序运行的全部活动中的上下文context。
2.Activity.this的context:返回当前activity的上下文
3.getbasecontext():返回由构造函数指定或setBaseContext()设置的上下文,若是你想从应用程序中的另外一种状况下,您能够访问上下文。
4.getContext():返回上下文只查看当前运行的活动。
区别:
1.getApplicationContext() 生命周期是整个应用,应用摧毁它才摧毁Activity.this的context,this.getContext()属于activity,activity 摧毁他就摧毁。
2.Activity.this的context 拿到的是当前Activity的Context,而getApplicationContext()拿到的是整个应用Application的Context。生命周期
使用内存
1.在Activity中能够直接调用getApplicationContext(),Activity.this/context获取相应的context。资源
2.在Fragment中的使用方式则为:
(1)getActivity(); //获取包含该fragment的活动(activity)的上下文
(2)getContext(); //获取该fragment上下文
(3)getActivity().getApplicationContext(); //经过包含该fragment的活动(activity)获取整个应用的上下文
(4)getContext().getApplicationContext(); //经过该fragment获取整个应用的上下文get
(在非特殊状况下(如:内存泄漏),这四种方式均可以正常使用,而且效果相同。)it