Android中Fragment中的getActivity()和getApplicationContext()方法是什么?

7

getActivity()getApplicationContext()在Fragment中的正确用法。

当在Fragment中获取意图时,你使用getActivity(),而有些地方则使用getAppliationContext();

getActivity()用于获取与Fragment相关联的Activity的上下文,而getApplicationContext()用于获取应用程序全局上下文。


请查看此链接:https://dev59.com/A2855IYBdhLWcg3w0H53 - Saurabh Thorat
3个回答

19
getActivity()

这个方法提供了Activity的上下文。你可以使用它来代替yourActivity.this。在Fragment中,通常使用方法getActivity()来获取它们所插入或填充的Activity的上下文。

getApplicationContext()

如果需要一个与整个应用程序的生命周期相关联的上下文,而不仅仅是当前 Activity 的生命周期,请使用此方法返回整个应用程序的上下文。使用这个方法代替当前活动上下文。

更多信息请参见此处


4
似乎您需要参考一些文档来使用这两个方法,但是没关系,您可以从以下链接开始。
getActivity() 返回与片段相关联的 Activity。

http://developer.android.com/reference/android/app/Fragment.html#getActivity()

getApplicationContext() 返回全局的 Application 上下文。

http://developer.android.com/reference/android/content/Context.html#getApplicationContext()

应该使用应用程序上下文来处理像接收器这样的函数,这些函数应该在应用程序销毁时而非活动销毁时被销毁。

2

当你想要超出片段或活动范围的东西时,可以使用getApplicationContext()。

在创建单例对象或初始化库时,我们始终坚持使用应用程序上下文。如果我们尝试在此处使用getActivity(),可能会导致内存泄漏。

关于getActivity(),它作为一个上下文,但它与您的片段生命周期保持一致。 在使用此上下文时,请务必检查其是否为空。

您可以通过以下链接获得清晰的理解:https://blog.mindorks.com/understanding-context-in-android-application-330913e32514


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接