Android中的getApplicationContext()和getActivity()以及 this 有什么区别?
答案 0 :(得分:13)
之间有很多区别:
View.getContext(): 返回视图当前运行的上下文。通常是当前活动的Activity。
Activity.getApplicationContext(): 返回整个应用程序的上下文(所有活动在其中运行的进程)。如果您需要与整个应用程序的生命周期相关联的上下文,而不仅仅是当前的Activity,请使用此代替当前的Activity上下文。
ContextWrapper.getBaseContext(): 如果需要从另一个上下文中访问Context,则使用ContextWrapper。 Context从内部引用ContextWrapper是通过getBaseContext()访问的。
同时检查:
https://stackoverflow.com/a/10641257/4018207 https://developer.android.com/reference/android/view/View.html#getContext%28%29
答案 1 :(得分:2)
存在巨大差异。 Android应用程序可以有多个活动,当您说getApplicationContext()
时,它会为您提供整个应用程序的上下文:see details :
但是,当您说getActivity()
时,它只会为您提供当前所在活动的实例。