昨天才开始下载了csdn的客户端 这让我能够学习到大森们的技术博客 变得容易 在地铁上 一篇文章中 一些对我而言 是新的知识 重要的知识 还有一些存在误区的地方 都需要记录来温习
今天先记录点 昨天学习的郭大侠的context 的文章 (http://blog.csdn.net/guolin_blog/article/details/47028975) 以后有相关context的知识点 都记录到此
1、继承结构
2、 attachBaseContext()
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
// 在这里调用Context的方法会崩溃
super.attachBaseContext(base);
// 在这里可以正常调用Context的方法
}
}
3、MyApplication的实例
Application是属于系统组件,系统组件的实例是要由系统来去创建的,如果这里我们自己去new一个MyApplication的实例,它就只是一个普通的Java对象而已,而不具备任何Context的能力。有很多人向我反馈使用 LitePal 时发生了空指针错误其实都是由于这个原因,因为你提供给LitePal的只是一个普通的Java对象,它无法通过这个对象来进行Context操作。Application全局只有一个,它本身就已经是单例了,无需再用单例模式去为它做多重实例保护了
public class MyApplication extends Application {
private static MyApplication app;
public static MyApplication getInstance() {
return app;
}
@Override
public void onCreate() {
super.onCreate();
app = this;
}
}