getContext() , getApplicationContext() , getBaseContext() and “this”的区别

简介:

使用this, 说明当前类是context的子类,一般是activity application等

使用getApplicationContext 取得的是当前app所使用的application,这在AndroidManifest中唯一指定。意味着,在当前app的任意位置使用这个函数得到的是同一个Context

使用getContext获取的是当前对象所在的Context

Context通常翻译成上下文,我通常当成场景来理解。

比如 我在火车上。
This 指当前类就是当前的场景。我.this不是context,
我.getContext 是火车, 火车.this是一个context
AppContext 就可以理解成这个社会。发生的一切都在这个社会中.有且只有一个社会

getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁

getBaseContext()  返回由构造函数指定或setBaseContext()设置的上下文


目录
相关文章
|
4月前
|
Android开发
Android面试题之View的invalidate方法和postInvalidate方法有什么区别
本文探讨了Android自定义View中`invalidate()`和`postInvalidate()`的区别。`invalidate()`在UI线程中刷新View,而`postInvalidate()`用于非UI线程,通过消息机制切换到UI线程执行`invalidate()`。源码分析显示,`postInvalidate()`最终调用`ViewRootImpl`的`dispatchInvalidateDelayed`,通过Handler发送消息到UI线程执行刷新。
53 1
|
4月前
|
消息中间件 调度 Android开发
Android经典面试题之View的post方法和Handler的post方法有什么区别?
本文对比了Android开发中`View.post`与`Handler.post`的使用。`View.post`将任务加入视图关联的消息队列,在视图布局后执行,适合视图操作。`Handler.post`更通用,可调度至特定Handler的线程,不仅限于视图任务。选择方法取决于具体需求和上下文。
50 0
|
4月前
|
前端开发 JavaScript Java
获取Servlet中的request.getContextPath方法详解
获取Servlet中的request.getContextPath方法详解
|
5月前
|
Java
request.getcontextPath() 详解
request.getcontextPath() 详解
|
6月前
|
前端开发 算法 计算机视觉
用canvas消除锯齿的方式
用canvas消除锯齿的方式
231 0
14-self与super以及isMemberOfClass与isKindOfClass的区别
14-self与super以及isMemberOfClass与isKindOfClass的区别
48 0
|
Android开发
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
160 0
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
JavaWeb - request 对象中 getContextPath() 方法介绍
JavaWeb - request 对象中 getContextPath() 方法介绍
177 0
JavaWeb - request 对象中 getContextPath() 方法介绍