Android全局获取Context

本文介绍了一种在Android应用中实现全局Context管理的方法。通过创建自定义Application类并重写onCreate()方法来保存全局Context,从而使得在整个应用的任何地方都可以方便地使用Context对象。这种方法特别适用于需要在非Activity类中使用Context的情况。

在弹出Toast 启动活动 发送广播 操作数据库 使用通知等等时都需要Context

如果操作在活动中进行是很简单的,因为活动本身就是一个Context对象

但是当逻辑代码脱离了Activity类,此时使用Context就需要一些技巧了:

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

代码如下:

public class MyApplication extends Application{
    
    private static Context context;

    @Override
    public void onCreate() {
        context = getApplicationContext();
    }
    public static Context getContext(){
        return context;
    }
}
重写父类onCreate()方法,并通过调用getApplicationContext()方法得到应用程序级别的Context
然后提供静态的getContext()方法,将取到的Context进行返回
注意:记得在AndroidManifest.xml文件的<application>标签下进行初始化MyApplication类 
<application
...
    android:name="com. ... .MyApplication"   <——这里最好填上完整包名
...
</application>
这样就实现了全局获取Context的机制,在应用程序里任何地方使用Context只需调用 MyApplication.getContext()就可以了
如:
Toast.makeText(MyApplication.getContext(),"全局Context",Toast.LENGTH_SHORT).show();
如果还用到其他的Application,则可以在MyApplication中的OnCreate()方法中调用其他Application的初始化方法即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值