这个,getContext()和getActivity()有什么区别?

时间:2015-05-16 16:47:04

标签: android android-activity android-context

我对所有这些的用法非常困惑,我们应该在哪里使用它们。

3 个答案:

答案 0 :(得分:43)

这 - 返回self reference
getContext() - 返回Context
getActivity() - 返回Activity

上下文

  

引自original answer

顾名思义,它是应用程序/对象当前状态的上下文。它允许新创建的对象了解正在发生的事情。通常,您可以调用它来获取有关程序其他部分(活动,包/应用程序)的信息

活动

Activity是支持屏幕或UI的Java代码。换句话说,用户界面的构建块是活动。 Activity类是Android中的预定义类,每个具有UI的应用程序都必须继承它以创建窗口。 Activity表示Android应用程序的表示层,例如,用户看到的屏幕。 Android应用程序可以有多个活动,并且可以在应用程序运行时在它们之间切换。

  

注意:活动扩展了Context。上下文不是活动。

答案 1 :(得分:9)

Activity是Context的子类,因此无论何时需要上下文,都可以给出。

getActivity()至少是Fragment上的一种方法,用于获取它所附加的活动。

每当活动的实例方法中需要上下文时,您都可以使用this

每当需要上下文信息或需要显示内容时,都需要上下文。

答案 2 :(得分:0)

getContext():

是View类中的一个方法,只能在继承View类的类中访问,返回当前View运行在什么Activity上下文中。

getActivity():

返回 Fragment 附加到的 Activity 对象。 Fragment 中不推荐使用 getActivity() 的原因如下: 该方法会返回当前 Fragment 附加的 Activity。当 Fragment 生命周期结束并销毁时, getActivity() 返回 null,因此需要处理使用 getActivity() 时可能出现的 null 情况。