全局获取Context

Posted on 2017-07-23 19:04  番茄番茄  阅读(216)  评论(0编辑  收藏  举报

在很多地方都需要用到Context,但在特殊情况下无法获取Context, 需要定义自己的Application,既可以利用我们自己的类来获取Context

public class MyApplication exends Application{
private static Content content;
重写父类的onCreate方法,并调用getApplicationContext()方法得到一个应用程序级别的Context
然后静态方法将其返回
public void onCreate(){ context = getApplicationContext(); } public static Context get Context(){ return context; } }

还要在清单文件中的application标签中进行指定当启动程序时初始化MyAoolication类,而不是默认的类,调用主函数Context的时候就可以MyApplication.getContext();

android:name="完整包名.MyApplication"

以上是通用情况,

LitePaly在使用的时候就要求必须在清单文件中配置

android:name="org.litepal.LitePalApplication"

会和我们的配置起冲突,但是Litepal给出了解决方案,

public class MyApplication exends Application{

    private static Content content;
重写父类的onCreate方法,并调用getApplicationContext()方法得到一个应用程序级别的Context
然后静态方法将其返回
    public void onCreate(){
      context = getApplicationContext();
    //把全局变量的Context对象通过参数传递给了LitePal,效果和在清单文件中配置LitePalApplication一样
    listPalApplication.initalize(context); }
public static Context get Context(){ return context; } }