某些情况下,获取Context并非是那么容易的事情,不过Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application类,以便于管理程序内一些全局的状态信息,如全局Context。定制自己的Application如下:
1、 创建一个MyApplication类,继承自Application ,代码如下:
public class MyApplication extends Application {
public static Context context;
public static Context getContext() {
return context;
}
@Override
public void onCreate() {
context=getApplicationContext();
super.onCreate();
}
}
2、 告知系统,程序启动时初始化MyApplication,而不是Application,在AndroidManifest.xml文件的中指定,如下:
<application
----------
**android:name="ln.lg.happinessweather.utils.MyApplication"**
----------
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="ln.lg.happinessweather.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".main.WeatherActivity"/>
</application>
注意,在指定时,一定要加上完整的包名,不然系统无法找到该类。
3、 如此就实现了全局Context,后面不论在项目的任何地方使用Context,只需调用MyApplication.getContext()就可以了。