Гарантируется ли экземпляр класса Application до того, как вызывается определенный загрузочный приемник

Извините меня за такой элементарный вопрос. Я понимаю, что класс приложения создается при запуске процесса моего приложения, и я понимаю, когда телефон будет завершен, и загрузится мой загрузочный приемник. Я предполагаю, что после того, как телефон узнает через манифест, что мое приложение содержит фильтр намерения BOOT_COMPLETED, процесс перезагрузки. Телефон перезагружается, телефон запускает все процессы с помощью BOOT_COMPLETED, телефон отключается от широковещательной передачи BOOT_COMPLETED. Мое беспокойство вызвало недоумение, ссылаюсь ли я на переменные экземпляра класса Application в моем загрузочном приемнике, если получатель когда-либо будет вызван до того, как будет создан экземпляр класса Application.

Опять извините, если это мертво очевидно. Я никогда не понимал механику перезагрузки.

Solutions Collecting From Web of "Гарантируется ли экземпляр класса Application до того, как вызывается определенный загрузочный приемник"

Приложение всегда запускается перед любым из его видов деятельности / служб / приемников. Вот несколько блогов, которые входят в детали:

[Изменено]

Но, согласно комментарию @CommansWare:

Основываясь на протоколировании, экземпляр ContentProvider создается после экземпляра приложения. Однако onCreate () ContentProvider вызывается перед onCreate () приложения.

Таким образом, вероятно, небезопасно пытаться использовать экземпляр приложения в onCreate() поставщика.

Телефон перезагружается, телефон запускает все процессы с помощью BOOT_COMPLETED, телефон отключается от широковещательной передачи BOOT_COMPLETED.

Я бы BOOT_COMPLETED его более «перезагрузкой телефона», телефон отключен от BOOT_COMPLETED , и происходит обычная широковещательная обработка, включая запуск любых необходимых процессов ».

Мое беспокойство вызвало недоумение, ссылаюсь ли я на переменные экземпляра класса Application в моем загрузочном приемнике, если получатель когда-либо будет вызван до того, как будет создан экземпляр класса Application.

Это не должно. Предполагается, что порядок создания экземпляра:

  • ContentProviders вы определили в своем манифесте, затем

  • Экземпляр Application , то

  • Компонент, который вызвал необходимость в этом процессе (в данном случае ваш ACTION_BOOT_COMPLETED BroadcastReceiver )