以下为up主阅读郭大神《第一行代码》后整理的笔记:
我们都知道活动本身就是一个Context对象,但是,当应用程序构架复杂起来的时候,很多的逻辑代码都会脱离Activity类,
而很多时候我们在这些逻辑类中又要使用到上下文对象Context,这时,我们只要通过下面的技巧就可以解决该问题,在
项目的任何地方都能获取到Context了。
1.定制自己的Application类
Android提供了一个Application类,每当程序启动的时候,系统就会自动将这个类进行初始化。我们可以通过继承Application
类去定制一个自己的Application类,以方便管理程序内如全局Context等全局状态信息
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>标签下进行指定
2.在AndroidManifest.xml中指定启动的时候初始化MyApplication类,而不是默认的Applicationl类
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.hellowworld" >
<application
android:name="com.crazyfzw.example.MyApplication"
...>
....
</application>
</manifest>
注意:指定MyApplication的时候一定要加上完整的包名。
3.接下来就可以在不能直接获取到Context的地方通过使用以下一行代码就可轻松获取到Context了。
MyApplication.getContext()