其实Activity.this就是context的一个具体,Activity.this是你当前所在的activity的上下文,this.getApplicationContext()取得的是整个应用的上下文,在你把他们作为参数传递的时候,多数是用来标注你要在哪个activity里面进行操作,比如上文提到的AlertDialog.Builder builder = new AlertDialog.Builder(this);你是要在当前的activit...
在Activity 调用getApplicationContext()方法,这个是源码,位于 publicclassContextWrapperextendsContext{@UnsupportedAppUsageContextmBase;publicContextWrapper(Contextbase){mBase=base;}@OverridepublicContextgetApplicationContext(){returnmBase.getApplicationContext();}...} 输出,都是Application对象 getApplication(...
Context 的作用: 访问全局信息的。 getApplicationContext()返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁。 Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁。 getBaseContext()返回由构造函数指定或setBaseContext()设置的上下文。 Application使用 有时候会在多个组件之间进...
其实Activity.this就是context的一个具体,Activity.this是你当前所在的activity的上下文,this.getApplicationContext()取得的是整个应用的上下文,在你把他们作为参数传递的时候,多数是用来标注你要在哪个activity里面进行操作,比如上文提到的AlertDialog.Builder builder = new AlertDialog.Builder(this);你是要在当前的activit...
public Context getApplicationContext() { return mBase.getApplicationContext(); } } 注意方法是public的,所以继承类可以直接访问,看了方法的实现,我们发现真是simply,就是都交给mBase来做相应的处理,关键就是构造方法或者attachBaseContext方法设置mBase并且进行操作。
public abstract class Context {} 1. 1 首先它是个抽象类,那它提供了哪些方法,哎,太多了,随便看几个吧: public abstract Looper getMainLooper(); //获取当前应用上下文 public abstract Context getApplicationContext(); //开启activity public abstract void startActivity(Intent intent); ...
在上篇文章从getApplicationContext和getApplication再次梳理Android的Application正确用法中,我提到 但是我们知道了mApplication和context是两个不同的东西,所以严格意义上来说getApplicationContext和getApplication是不一样的,虽然很多时候他们返回的都是同一个对象 注意到我这里说的是这两个方法返回的对象是不一样的,因为...
getApplicationContext(); } } 注意方法是public的,所以继承类可以直接访问,看了方法的实现,我们发现真是simply,就是都交给mBase来做相应的处理,关键就是构造方法或者attachBaseContext方法设置mBase并且进行操作。 来看看我们最常用的Activity,主要看看getApplication: public class Activity extends ContextThemeWrapper ...
public ContextWrapper(Context base) { mBase = base; } 1. 2. 3. 而因为ContextWrapper是Acticity的父类,因此在初始化Activity对象的成员时,ConextWrapper对象应该已经构造完了,那么mBase应该是可用的,那么getApplicationContext()应该也是可用的。 试了一把,果然不行,直接NPE. 后来结合老罗的Activity启动分析 ...
网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同的,前者的生命...