全局获取Context的技巧
在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast
的时候须要、启动活动的时候须要、发送广播的时候须要、操作数据库的时候须要、使用通
知的时候须要等。
假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context。直接受用this就能够了。
可是对于比較复杂的逻辑,这些代码没有放在Activity中。那么。获取Context就显得不是那么easy了。
这里告诉大家一个技巧:
Android 提供了一个 Application 类。每当应用程序启动的时候,系统就会自己主动将这个类
进行初始化。
而我们能够定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比方说全局 Context。
1,新建一个类MyApplication继承Application.
代码例如以下:
package com.example.networktest;
public class MyApplication extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
}
public static Context getContext() {
return context;
}
}
2,在 AndroidManifest.xml 文件的<application>标签下进行指定就能够了,代码例如以下所看到的:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.networktest"
android:versionCode="1"
android:versionName="1.0" >
……
<application
android:name="com.example.networktest.MyApplication"
…… >
……
</application>
</manifest>
注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这
个类。
这样我们就已经实现了一种全局获取 Context的机制,之后无论你想在项目的不论什么地方
使用 Context,仅仅须要调用一下 MyApplication.getContext()就能够了。