Android之上下文context

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

相關文章
相關標籤/搜索