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 谢谢楼主了,帮了我大忙,非常的感谢!
大约 2 年之前 回复
curie_87
curie_87 谢谢你的答案!
接近 6 年之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android全局获取Context对象(在静态函数中实现toast)
全局获取Context对象的意义: 当应用程序的架构逐渐复杂起来的时候,很多逻辑代码都将脱离Activity或者Service,但是如果此时你又恰恰需要使用Context,这个时候就需要用到全局获取Context了。 举个例子,如果此时需要实现一个从网络获取图片的类,我有多个Activity,并且每个Activity都需要从网络获取图片。在图片无法获得的时候,我需要用Toast来提示用
Android全局获取Context上下文实例
如题,在没有用到Activity的类中也能轻松获取上下文Context实例 方法很简单,继承Application,提供获取上下文的静态方法供全局调用 在Application类的onCreate()方法中获取Context实例 用静态方法暴露获取到的Context实例即可 /** * @author catface at 2015/11/17 - 9:17 */ public class M
Android全文获取context(上下文)的方法
给大家带来一个简单的在全文获取context的方法具体思路是在MyApplication里面定义一个方法,可以在全文调用:创建MyApplication类继承Application: public class MyApplication extends Application { private static Context context;@Override public void o
Android获取上下文几个方法的区别
先看下继承关系,Activity/Service/Application都是继承自Context的,获取上下文实际获取的是各子类的上下文实例,可能是Activity,也可能是Application等,具体使用哪一个,需要根据当前控件选择,不能随意使用。 1.getContext这是View的一个方法,获取视图上下文,view一般是依托于Activity,所以这个方法返回的是当前Activity实例
Java中静态方法(上下文)的使用
从书中看了一下Java中静态方法的使用以及使用注意事项,总结下来的注意事项义工有两点:1,静态方法中不能够直接调用非静态变量;2,非静态方法中可以直接调用静态变量;至于其他的情况,之前基本的代码中都做了测试,不再赘述了。接下来写一段代码,主要是为了验证前面的第一点:public class StaticMethod{int my_num = 123;public static void main(
4.8.4 在Android 中fragment中获取上下文
View ret = inflater.inflate(R.layout.fragment_liebie,container,false); 然后 使用 ret.getContext() 就可以了。 ++++++++++++++++++++++++++++++++++++++++++++++ public class LeiBieFragment extends Fr
Fragment怎么获取上下文?
例如此时我的Fragment现在是MineMain,我要获取其中一个Textview的id,可以:mTitle1 = (TextView) MineMain.this.getActivity().findViewById(R.id.title1); mTitle1.setText("子核心管理");或是: final Context context = getActivity()
Android中获得上下文
一般情况下,我们要获得一个类的上下文,仅仅只需要用关键字this即可,此类型既是Context类,也是外部类。public class MainActivity extends Activity { private ListView mainListView; /** * Called when the activity is first created. */
安卓-获取全局上下文
一、实现获取全局上下文 什么情况下需要使用全局上下文,不能通过参数传过来,但是做其他工作又用到这个参数,这种情况下就需要使用全局上下文,一般情况下都是可以通过参数传进去的。 比如说封装一个工具类,工具类中需要用到上下文,可以通过参数传进去,也可以在工具类中使用全局上下文。以获取getApplicationContext();这个为例。为了便于管理,将其定义在Application中。总结下使用
Android获取Context(任意位置任意地方,全局上下文)
一般方法在一般的地方都能获取,但是特殊的地方呢,上述情况都不太管用了,如工具类。但是有时过多时就会觉得过于频繁。那么有什么一劳永逸的方法,答案就是使用自定义Application。