Android全局获取Context

来源:互联网 发布:淘宝BB8机器人 编辑:程序博客网 时间:2024/06/05 09:59

在开发中,很多的逻辑代码都将脱离Activity类,此时会发现无法获取到Context,下面通过Android提供的Application类来实现全局获取Context。


Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。在Android源码中对他的描述是:

  • Base class for those who need to maintain global application state. You can
    • provide your own implementation by specifying its name in your
    • AndroidManifest.xml’s <application> tag, which will cause that class
    • to be instantiated for you when the process for your application/package is
    • created.

由此可见,Application类是为了那些需要保存全局变量设计的基本类,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,可以直接在Application中实现。只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应 的处理。

我们可以定制一个自己的Application类,以便于管理程序内一些全局的状态信息,比如说全局Context。

1、创建一个MyApplication类extends自Application。
2、重写父类的onCreat()方法,通过调用getApplicationContext()方法得到一个应用程序级别的Context

    private static Context context;    @Override         public void onCreate() {        context = getApplicationContext();    }

3、编写一个静态的getContext()方法,将刚才获取到的Context进行返回。

    public static Context getContext(){        return context;    }

4、在AndroidManifest.xml文件的 < application>标签下进行指定初始化MyApplication类。此处一定要加上完整的包名,不然系统无法找到这个类。

android:name="com.example.hgx.phoneinfo60.MyApplication">

这样就实现了一种全局获取Context的机制,之后不管在项目的任何地方使用Context,只需要调用一下MyApplication.getContext()就可以了。

1 0
原创粉丝点击