Я вижу задержку 200 мс или более между MyApplication#onCreate
и MyActivity#onCreate
. Происходит ли что-нибудь значимое в этот промежуток?
Я думал о случае, когда приложение было запущено с намерением для MyActivity, но вы правы, я не должен предполагать, что это так.
Согласно документации Application#onCreate
(связь), он вызывается перед созданием любых объектов Activity/Service/Receiver.
Это означает, что после Application#onCreate
создается экземпляр Activity (MyActivity в вашем случае) и только после этого Activity#onCreate
может вызываться.
Обновлено: в зависимости от вашей реализации даже вызов super.onCreate()
в MyActivity будет увеличивать временной интервал.
Вы можете просмотреть код здесь. В общем, он восстанавливает состояние, заполняет фрагменты и уведомляет приложение о том, что действие было создано.
Спасибо за ссылку. Я вижу, что это также приводит к вызову фрагментов onActivityCreated.
Вызывается перед запуском первых компонентов приложения
Вызывается, затем создается действие. Используется для инициализации действия, например, для создания пользовательского интерфейса.
Приложение onCreate(): Вызывается только один раз при запуске приложения. если вы убьете приложение, то откройте приложение. он позвонит снова.
Активность onCreate(): Вызывается, затем создается действие. если вы повторно откроете активность, она снова вызовет, но Application onCreate вызовет только один раз в приложении.
Много. Это разные концепции, на самом деле нет обещания, что действие когда-либо будет создано при запуске приложения — оно может быть запущено для службы или трансляции.