全局获取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()就可以了。

posted @ 2016-05-15 13:18  ts-android  阅读(2735)  评论(0编辑  收藏  举报