Application

      Application、Activity、Service都是ContextWraper的子类,ContextWrapper是Context的包装类,在ContextWrapper类中,有一个attachBaseContext方法,这个方法传递进去的参数就是ContextImpl的实例,也就是Context的实现类实例。而ContextWrapper中各种方法的调用都是间接调用的ContextImpl中的方法。

     Application初始化过程  Application构造函数->attachBaseContext-> onCreate

所以在Application构造函数中不能使用Context中有关函数,因为还没有被实例化,会报空指针。

     Application会在启动Android应用程序的时候被调用。

     Application属于系统组件,是由系统创建的,直接new Application相当于是一个普通的Java对象,不具备用Context能力,所以使用new Applicaition的context功能的时候,常常会崩溃。

     Application全局只有一个,本身就是单例了,不再需要使用单例模式去为它做多重实例保护了。

转载于:https://www.cnblogs.com/SA226343/p/7201396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值