我在测试app的时候,经常会发生执行onNetIntent的逻辑时,变量没有初始化,导致空指针崩溃。

 

根据以前的认知,app只有被热启动打开的时候,才会调用onNewIntent方法。实际上不是的。

有时候launcher在打开app的时候会先执行oncreate方法,然后马上执行onNewIntent方法,导致变量在oncreate方法里面还没来得及初始化就在onNewIntent方法里面被用了。导致app崩溃。

所以解决方案,如果在onNewIntent方法里面。变量为空,则说明此次打开app大概率调用了onCreate方法。直接return

一般,在onNewIntent里面的逻辑都会在oncreate里面处理,所以,把这次intent的处理交给oncreate就行了。