Can Activity.getIntent() ever return null?

后端 未结 2 1185
野趣味
野趣味 2020-12-03 06:45

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

2条回答
  •  佛祖请我去吃肉
    2020-12-03 06:57

    Yes, it can, but only in two cases:

    In activity constructor:
    Intent set up in internal attach method, called from Instrumentation class:

    public Activity newActivity(Class clazz, Context context, 
            IBinder token, Application application, Intent intent, ActivityInfo info, 
            CharSequence title, Activity parent, String id,
            Object lastNonConfigurationInstance) throws InstantiationException, 
            IllegalAccessException {
        Activity activity = (Activity)clazz.newInstance();
        ActivityThread aThread = null;
        activity.attach(context, aThread, this, token, 0, application, intent,
                info, title, parent, id,
                (Activity.NonConfigurationInstances)lastNonConfigurationInstance,
                new Configuration(), null, null);
        return activity;
    }
    

    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.

提交回复
热议问题