- 当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,但此时又恰恰需要使用 Context。
- Android 提供了一个** Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化**。
- 我们可以定制一个自己的 Application 类,以便于管理程序内一些全局的状态信息,比如说全局 Context。
1. 创建一个自己的 MyApplication 类继承自 Application。
public class MyApplication extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
}
public static Context getContext() {
return context;
}
}
- 重写父类的** onCreate() **方法,并通过调用 getApplicationContext() 方法得到了一个应用程序级别的 Context。
- 又提供了一个静态的 **getContext() **方法,在这里将刚才获取到的 Context 进行返回。
2. 需要告知系统,当程序启动的时候应该初始化 MyApplication 类,而不是默认的 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 的时候一定要加上完整的包名,不然系统将无法找到这个类。
3. 想在项目的任何地方使用 Context,只需要调用 MyApplication.getContext() 就行了。
网友评论