Android中获得上下文的静态方法

如何使用静态方法获取当前的 Context实例?
我不想每次 Context实例改变时都保存一次,请求大师们帮忙寻找解决方法。谢谢!

在Android的清单文件做如下申明:

<application android:name="com.xyz.MyApplication"> 
</application> 

然后写这个类:

public class MyApplication extends Application{ 

    private static Context context; 

    public void onCreate(){ 
        super.onCreate(); 
        MyApplication.context = getApplicationContext(); 
    } 

    public static Context getAppContext() { 
        return MyApplication.context; 
    } 
} 

调用MyApplication.getAppContext()来静态的获取你应用程序的context。

希望给你帮助!

我找到一种解决方法是在Activity中或者 Context的其他子类中调用了getApplicationContext()方法。希望和大家共享。

使用getApplicationContext()时要注意, Dialog不可以使用Application的Context,只可以使用Activity的Context

这个问题看来你已经知道了。

Context contex=this;这个this就是你当前的Activity

To retrieve the application context we must invoke a method on a hidden class (ActivityThread) which has been available since API 1:

public static Application getApplicationUsingReflection() throws Exception {
return (Application) Class.forName("android.app.ActivityThread")
.getMethod("currentApplication").invoke(null, (Object[]) null);
}

getApplicationContext(),随时获取Context实例

Application 的oncreate方法中保存到一个单例变量中

static Context context;
public void oncreate{
    context = this
}