如何使用静态方法获取当前的 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
}