Application的使用的注意事项
今天遇见一个问题,一个ContentProvider调用了Application这个Context出现了空指针。最后定位原因Application的Oncreate方法中进行了Context的初始化,这就设计到了四大组件什么时候调起进程的问题。Application中的onCreate方法会在进程启动的时候被调用,但是Android进程被启动的场景多种多样。启动一个Activity、接收到一个广播、启动一个service都会把进程拉起。从而执行Application中的onCreate方法。但是有一种特殊情况就是ContentProvider,ContentProvider虽然也是四大组件之一,但是当ContentProvider被其他应用调用时Application中的onCreate方法不会被执行。这就导致了ContentProvider中使用了某些对象是在Application中的onCreate中初始化的会导致出现空指针异常。