getActivity()
和getApplicationContext()
在Fragment中的正确用法。
当在Fragment中获取意图时,你使用getActivity()
,而有些地方则使用getAppliationContext();
getActivity()
用于获取与Fragment相关联的Activity的上下文,而getApplicationContext()
用于获取应用程序全局上下文。
getActivity()
和getApplicationContext()
在Fragment中的正确用法。
当在Fragment中获取意图时,你使用getActivity()
,而有些地方则使用getAppliationContext();
getActivity()
用于获取与Fragment相关联的Activity的上下文,而getApplicationContext()
用于获取应用程序全局上下文。
getActivity()
这个方法提供了Activity的上下文。你可以使用它来代替yourActivity.this。在Fragment中,通常使用方法getActivity()
来获取它们所插入或填充的Activity的上下文。
getApplicationContext()
如果需要一个与整个应用程序的生命周期相关联的上下文,而不仅仅是当前 Activity 的生命周期,请使用此方法返回整个应用程序的上下文。使用这个方法代替当前活动上下文。
更多信息请参见此处。
http://developer.android.com/reference/android/app/Fragment.html#getActivity()
getApplicationContext() 返回全局的 Application 上下文。
http://developer.android.com/reference/android/content/Context.html#getApplicationContext()
应该使用应用程序上下文来处理像接收器这样的函数,这些函数应该在应用程序销毁时而非活动销毁时被销毁。当你想要超出片段或活动范围的东西时,可以使用getApplicationContext()。
在创建单例对象或初始化库时,我们始终坚持使用应用程序上下文。如果我们尝试在此处使用getActivity(),可能会导致内存泄漏。
关于getActivity(),它作为一个上下文,但它与您的片段生命周期保持一致。 在使用此上下文时,请务必检查其是否为空。
您可以通过以下链接获得清晰的理解:https://blog.mindorks.com/understanding-context-in-android-application-330913e32514