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