Несмотря на то, что существует множество ресурсов для жизненного цикла приложений, активности и активности, видимых с точки зрения API (методы onCreate/Destroy/Whatnot()
), почти нет информации о фактическом жизненном цикле объектов для этих компонентов с точки зрения Java. Так, например, я видел (на видеоролике YouTube о маракане), что услуги - это в основном одиночные игры, и это заставило меня задуматься о состоянии IntentService - может ли он быть общим? Или это тоже сингл?
Я предполагаю, что сначала создается процесс (по Zygote?) вместе с экземпляром DalvikVM, а затем классы для всех компонентов, объявленных в манифесте, загружаются (?), а затем создаются при необходимости - но это догадки. Я не могу вообще ответить на такие вопросы, как:
- являются BroadcastReceivers экземплярами только один раз или один раз каждый раз, когда широковещание получено?
- - это приложение singleton? Гарантировано?
-
MyApplication.class
загружен перед всеми другими компонентами? Всегда создавался? Даже когда запускается только манифест, зарегистрированный BR моей стороны? - когда конкретная
Application.class
моя (вероятно, будет) выгружена (так что я должен проверить, нужна ли ее статические поля для инициализации (в том случае, когда вызывающий абонент инициализирует их))
Ты видишь, я здесь в темноте. Я бы хотел, чтобы некоторый анализ загрузки, создания экземпляров и сбора мусора основных компонентов приложений Android - ссылок на документы и/или приветствия источника. Чем техничнее, тем лучше.
Refs: this сообщение от @inazaruk.
Также Статические ссылки очищаются - удаляет ли Android классы во время выполнения, если не используется?