Android开发之全局获取Context的技巧

时间:2022-02-20 21:04:02

转自《第一行代码-Android》进阶篇

这本书对于入门来说确实很棒,很简单明了的介绍了Android开发中涉及到的方方面面,对我的帮助很大,同时记录一些该书中一些对我以后开发有用的东西,以方便使用。

Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application类,已便于管理程序内一些全局的状态信息,比如全局Context。

定制一个自己的Application,首先需要创建一个MyApplication类继承Application。

 public class MyApplication extends Application {

     private static Context context;

     @Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
context=getApplicationContext();
} public static Context getContext() {
return context;
}
}

重写了父类的onCreate()方法,并通过调用getApplicationContext()方法得到了一个应用程序级别的Context,然后又提供了一个静态的getContext()方法,在这里将刚才获取到的Context返回。

在AndroidMainifest文件中的<application>标签下进行指定

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
android:versionCode="1"
android:versionName="1.0" >
......
<application
android:name="com.example.test.MyApplication"
......>
......
</activity>
</application>
</manifest>

这样我们就已经实现了一种全局获取Context的机制,之后不管你想在项目的任何地方使用Contenxt,只需要调用一下MyApplication.getContext()方法就可以了。