【问题标题】:What is the difference between this, getContext() and getActivity()?这 getContext() 和 getActivity() 有什么区别?
【发布时间】:2015-05-16 16:47:04
【问题描述】:

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

【问题讨论】:

  • 如果您不确定,请使用getActivity()
  • Activity 是 Context 的子类,但 Context 不一定是 Activity - 例如 Service 也是 Context。你想完成什么?

标签: android android-activity android-context


【解决方案1】:

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

上下文。

引用original answer :

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

活动

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

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

【讨论】:

【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

    getContext():

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

    getActivity():

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

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 2023-03-10
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多