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