Context,中文直譯為“上下文”,SDK中對其說明如下:?
1、它描述的是一個應用程序環境的信息,即上下文。?
2、該類是一個抽象(abstract class)類,Android提供了該抽象類的具體實現類。?
3、通過它我們可以獲取應用程序的資源和類,也包括一些應用級別操作,例如:啟動一個Activity,發送廣播,接受Intent信息等。
各種context及區別:
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獲取整個應用的上下文
? ? ?(在非特殊情況下(如:內存泄漏),這四種方式都可以正常使用,并且效果相同。)