Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver等系统组件,而这些组件并不是像一个普通的Java对象new一下就能创建实例的了,而是要有它们各自的上下文环境,也就是我们这里讨论的Context
这个例子中的getBaseContext()就不能被this代替,因为上面的this返回的是这个activity的context,而在这个onClick函数中如果使用this的话,则返回的是这个AlertDialog的context,所以要使用的是当前activity名.this 去使用,比如当前activity为 TestActivity,那么在里面就是用TestActivity.this即可 3. getApplication(): getAppl...
getView().getContext():返回当前View对象的Context对象,通常是当前正在展示的Activity对象 getActivity().getApplicationContext():获取当前Activity所在的(应用)进程的Context对象,通常我们使用Context对象时,要优先考虑这个全局的进程Context getApplication()和getApplicationContext()的区别 Application本身就是一个Context,...
在Application中,我们可以通过getApplicationContext()方法来获取Context对象。 步骤二:在Activity或者Application中获取Context对象 无论是在Activity还是在Application中获取Context对象,都可以通过this关键字或者getApplicationContext()方法来实现。下面是具体的代码示例: publicclassMainActivityextendsAppCompatActivity{// 在Acti...
写个main()方法就能运行,Android应用模型是基于组件的应用设计模式,组件的运行要有一个完整的Android工程环境,在这个环境下,Activity、Service等系统组件才能够正常工作,而这些组件并不能采用普通的Java对象创建方式,new一下就能创建实例了,而是要有它们各自的上下文环境,也就是我们这里讨论的Context。
3.Application Context的获取过程 当我们熟知了Application Context的创建过程,那么它的获取过程会非常好理解。我们通过调用getApplicationContext方法来获得Application Context,getApplicationContext方法的实现在ContextWrapper中,如下所示。 frameworks/base/core/java/android/content/ContextWrapper.java ...
/* * 全局获取Context实例的静态方法。 */ public static class Foo { private static sContext; public static Context getContext() { return sContext; } public static void setContext(Context context) { sContext = context; } } 这样在整个项目中,都可以通过Foo#getContext()获取Context实例了。不过目前...
2. 反射ActivityThread获得 ApplicationContext(不推荐) 这一节介绍一种通过ActivityThread.java获得Application的方法,具体如下: 2.1 源码分析 我们都知道,在启动四大组件(Activity、Service、ContentProvider, BroadcastReceiver)时,如果对应的进程未启动,就需要先创建进程,相应地也会创建一个Application对象,即: ...
第二步:新建MainApplication.java,代码和上面一样我就不贴了. 第三步:新建一个工具类ToolsUtil.java,代码如下 package com.tutor.application; import android.content.Context; import android.widget.Toast; /** * @author frankiewei. * 应用的一些工具类. ...
this, NewActivity.class);您正在使用 getApplicationContext 但也许您正在尝试使用Activity 中的get...