Can Activity.getIntent()
ever return null
?
The documentation does not mention this as a possibility, so I am wondering if I have to check the result of getIntent()
for null
value before dereferencing it.
Can Activity.getIntent()
ever return null
?
The documentation does not mention this as a possibility, so I am wondering if I have to check the result of getIntent()
for null
value before dereferencing it.
Yes, it can, but only in two cases:
In activity constructor:
Intent set up in internal
attach
method, called fromInstrumentation
class:therefore intent is always null in constructor.
After setIntent(null):
It's possible to change intent from outside of activity with
setIntent()
.In all other cases it can't.
It CAN be null when Your application was updated from the market while it was in the memory and relaunched again after the update. Maybe even If you will make update manually by Studio, or from .apk file, the same effect will be. Not sure, sorry.
I once updated application in Google Dev console and got several different NPE in Crashlitics in the lines with call getIntent(). It happened for all screens, where I used getIntent().getExtra() onCreate or even later in lifeCycle.
So... It looks ugly, but to avoid crashes I need to check intent for NULL value all the time I call getIntent and most of the times I call Finish() if the intent is null. But you can make other logic, ofc, for you purpose.