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