活动和上下文有什么区别?

发布于 2024-11-17 22:25:18 字数 82 浏览 0 评论 0原文

Activity 和 Context 是相同的还是有区别?

我什么时候应该让方法传递 Activity,什么时候传递 Context?

Are Activity and Context the same, or are there differences?

When should I have a method pass an Activity, and when a Context?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世界如花海般美丽 2024-11-24 22:25:18

据我了解:
Context 是基础对象。因此每个 ActivityApplication 派生自 Context。这意味着每个 Activity 和每个 Application 都是一个 Context

来自 developer.android.com 活动< /a>

java.lang.Object
  ↳ android.content.Context
      ↳ android.content.ContextWrapper
          ↳ android.view.ContextThemeWrapper
              ↳ android.app.Activity

Application

java.lang.Object
↳   android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.app.Application

只要您的应用存在,应用程序上下文就会持续存在还活着,而 Activity 上下文随着您的 Activity 一起消亡(它是在该 Activity 的 onDestroy 之后无效)。

因此,如果您需要跨活动的上下文(即在单例中),您最好使用应用程序上下文。

通常,在需要上下文的 Android 框架方法中,传递哪一个都没有区别。但如果您保留内存泄漏,请务必注意 MemoryLeaks对上下文的长期引用

As far as I understand:
Context is the Base Object. So every Activity same as Application derives from Context. This means that every Activity and every Application IS a Context;

From developer.android.com Activity

java.lang.Object
  ↳ android.content.Context
      ↳ android.content.ContextWrapper
          ↳ android.view.ContextThemeWrapper
              ↳ android.app.Activity

And Application

java.lang.Object
↳   android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.app.Application

An Application context lasts, as long as your app is alive, while the Activity context dies with your Activity (it is not valid after onDestroy of that Activity).

So if you need the Context across Activities (i.e. in a Singleton) you will be better off using an Application context.

Usually on Android Framework methods where a context is expected, it makes no difference which one you pass. But be always aware of MemoryLeaks if you're keeping long-living References to a Context

少钕鈤記 2024-11-24 22:25:18

正如您在 Android 文档 中看到的:

Activity 类扩展自“ ContextThemeWrapper”,这个来自“ContextWrapper”,那个来自“Context”。

所以,是的,活动扩展了上下文!

As You can see on the Android doc:

The Activity class extends from "ContextThemeWrapper", and this one from "ContextWrapper", and that one from "Context".

So, yes, An Activity extends the Context!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文