在很多地方都需要用到Context,但在特殊情况下无法获取Context, 需要定义自己的Application,既可以利用我们自己的类来获取Context
public class MyApplication exends Application{
private static Content content;
重写父类的onCreate方法,并调用getApplicationContext()方法得到一个应用程序级别的Context
然后静态方法将其返回 public void onCreate(){ context = getApplicationContext(); } public static Context get Context(){ return context; } }
还要在清单文件中的application标签中进行指定当启动程序时初始化MyAoolication类,而不是默认的类,调用主函数Context的时候就可以MyApplication.getContext();
android:name="完整包名.MyApplication"
以上是通用情况,
LitePaly在使用的时候就要求必须在清单文件中配置
android:name="org.litepal.LitePalApplication"
会和我们的配置起冲突,但是Litepal给出了解决方案,
public class MyApplication exends Application{ private static Content content; 重写父类的onCreate方法,并调用getApplicationContext()方法得到一个应用程序级别的Context 然后静态方法将其返回 public void onCreate(){ context = getApplicationContext();
//把全局变量的Context对象通过参数传递给了LitePal,效果和在清单文件中配置LitePalApplication一样
listPalApplication.initalize(context); } public static Context get Context(){ return context; } }
原文:http://www.cnblogs.com/zhoushenglei/p/7225702.html