1. 程式人生 > >如何在Fragment中獲取context

如何在Fragment中獲取context

調用 class spa 自己 構造 使用 抽象類 ati 活動

文章轉載自http://blog.csdn.net/demonliuhui/article/details/51511136

這裏僅供自己學習參考;

Context,中文直譯為“上下文”,SDK中對其說明如下:
1、它描述的是一個應用程序環境的信息,即上下文。
2、該類是一個抽象(abstract class)類,Android提供了該抽象類的具體實現類(後面我們會講到是ContextIml類)。
3、通過它我們可以獲取應用程序的資源和類,也包括一些應用級別操作,例如:啟動一個Activity,發送廣播,接受Intent信息等。

各種context及區別:

1.getApplicationContext() 返回在應用程序運行的所有活動中。
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獲取整個應用的上下文

(在非特殊情況下(如:內存泄漏),這四種方式都可以正常使用,並且效果相同。)

如何在Fragment中獲取context