Что происходит между Application#onCreate и Activity#onCreate?

Я вижу задержку 200 мс или более между MyApplication#onCreate и MyActivity#onCreate. Происходит ли что-нибудь значимое в этот промежуток?

Много. Это разные концепции, на самом деле нет обещания, что действие когда-либо будет создано при запуске приложения — оно может быть запущено для службы или трансляции.

Gabe Sechan 25.07.2019 19:54

Я думал о случае, когда приложение было запущено с намерением для MyActivity, но вы правы, я не должен предполагать, что это так.

philo 26.07.2019 01:41
3
2
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Согласно документации Application#onCreate (связь), он вызывается перед созданием любых объектов Activity/Service/Receiver.

Это означает, что после Application#onCreate создается экземпляр Activity (MyActivity в вашем случае) и только после этого Activity#onCreate может вызываться.

Обновлено: в зависимости от вашей реализации даже вызов super.onCreate() в MyActivity будет увеличивать временной интервал.

Вы можете просмотреть код здесь. В общем, он восстанавливает состояние, заполняет фрагменты и уведомляет приложение о том, что действие было создано.

Neel Mehta 30.07.2019 00:01

Спасибо за ссылку. Я вижу, что это также приводит к вызову фрагментов onActivityCreated.

philo 30.07.2019 17:30

Приложение onCreate():

Вызывается перед запуском первых компонентов приложения

Активность onCreate():

Вызывается, затем создается действие. Используется для инициализации действия, например, для создания пользовательского интерфейса.

Приложение onCreate(): Вызывается только один раз при запуске приложения. если вы убьете приложение, то откройте приложение. он позвонит снова.

Активность onCreate(): Вызывается, затем создается действие. если вы повторно откроете активность, она снова вызовет, но Application onCreate вызовет только один раз в приложении.

Другие вопросы по теме