2 curie 87 curie_87 于 2012.09.14 11:54 提问

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

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

7个回答

yongyong_21
yongyong_21   2012.09.14 13:21
已采纳

在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。

希望给你帮助!

qq_23967625
qq_23967625 谢谢楼主了,帮了我大忙,非常的感谢!
一年多之前 回复
curie_87
curie_87 谢谢你的答案!
大约 5 年之前 回复
editor1994
editor1994   2015.12.30 19:03

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

curie_87
curie_87   2012.09.19 15:42

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

CDersTeam
CDersTeam   2016.01.03 15:08

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

slandkiss
slandkiss   2016.01.11 10:56

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

arlaichin
arlaichin   2016.03.09 00:05

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);
}

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.10.10 18:30

getApplicationContext(),随时获取Context实例

Csdn user default icon
上传中...
上传图片
插入图片