全局获取Context上下文对象的技巧


当我们在没有继承Context类的时候需要获取上下文Context对象,就不能通过getApplicationContext()方法获取

继承体系如下:

Objece

  |--Context

    |--ContextWrapper

      |--Application

所以如果我们想在自定义的类中获取上下文对象的方法就是:

1.创建一个类继承Application类:

public class MyApplication extends Application{
    private static Context context=null;
    @Override
    public void onCreate() {
        context=getApplicationContext();
    }
    public static Context getContext(){
        return context;
    }
}

2.接下来我们需要告知系统,当程序启动的时候应该初始化 MyApplication 类,而不是默

认的 Application 类。这一步也很简单,在 AndroidManifest.xml 文件的<application>标签下进
行指定就可以了,代码如下所示:(在application标签下指定name的属性)

<application
        android:name="com.example.ts.jiqiao.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity

注意这里在指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这个类。

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM