安卓开发之全局获取Context

某些情况下,我们并不能方便的获取上下文环境,因为我们所调用的函数或者类中有时并不存在相关的参数,放心啦,不要尬,安卓为我们提供了一个Applocation类,以便于我们去管理程序内的一些全局的状态信息,比如说全局Context。
  首先,我们需要定制一个自己的Applocation类去继承Applocation。示例如下:

public class MyApplication extends Applocation {

    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
    }

    public static Context getContext() {
        return context;
    }

}  

很简单吧,就是重写了父类的onCreate方法,利用函数getApplicationContext()获取了一个应用程序级别的Context,然后提供了一个静态的getContext方法将上述context返回。
程序启动的时候会初始化Application类,我们要告知系统修改其默认做法,转而启动我们自定义的MyApplication类。具体来说就是在AndroidManifest.xml文件的<application>标签下进行指定。代码如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ......
    <application
        android:name="com.example.test.MyApplication" 
        ......>
    ......
    </application>
</manifest>

需要注意的是,我们需要在该标签中输入你所开发项目的完整的包名。
  此外,《第一行代码》这本书中提到了一个很重要的问题:由于每个项目只能有一个Application,当我们使用第三方开源项目如Litepal等对application的配置有需求的资源时,就不能使用上述方法重复配置了,错误的示范如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ......
    <application
        android:name="com.example.test.MyApplication" 
        android:name="org.litpal.LitePalApplication"
        ......>
    ......
    </application>
</manifest>

辣么,要肿么做呢?很简单,在我们自定义的Application中加入对litepal的支持就好了,示例如下:

public class MyApplication extends Applocation {

    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
        LitePalApplication.initialize(context);
    }

    public static Context getContext() {
        return context;
    }

}  

这样一来,可以实现同样的配置效果,又不会发生冲突哈,棒棒哒!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,506评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,789评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,255评论 6 342
  • 女孩 你举着花儿从这个世界走过 那硕大的白色花朵 仿佛一副盾牌 把喧嚣挡在门外 女孩 我猜你一定有着 泉水般澄澈的...
    初见___阅读 362评论 8 11
  • 很多小伙伴每天使用最多的聊天工具就是微信了,确实微信极大地方便了大家的生活,不用出门,通过朋友圈就可以了解天下事。...
    喇叭兔阅读 600评论 0 0

友情链接更多精彩内容