<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在某些情况下,获取Context并非那么容易的一件事,有时候还是挺伤脑筋的,不过不用担心,下面这个小技巧让你在项目的任何地方都能够轻松获取到Context.</span>
Android提供了一个Application类,每当应用程序启动时,系统就会自动将这个类进行初始化.而我们可以定制一个自己的Application类.以便于管理程序内一些全局的状态信息,比如全局Context.
public class MyApplication extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
/**
* 返回context
*/
public static Context getContext(){
return context;
}
}
代码非常简单,这里我们重写了父类的onCreate()方法,并通过getApplicationContext()方法得到一个应用程序级别的Context,然后提供了一个静态的getContext()方法,在这里将刚才获取的Context进行返回.
接下来还有一步,我们需要告知系统,当程序启动的时候应该初始化MyApplication类,而不是默认的Application类.这一步也很简单,在AndroidManifest.xml文件的<application>标签下进行指定就可以了
<application
android:name="com.example.MyApplication"
android:icon="@drawable/logo"
android:label="@string/app_name">
</application>