Предположим, что в моем приложении много процессов.
Я пытаюсь запустить некоторый код инициализации (фактически сохранить контекст приложения в статической переменной) в приложении onCreate(). Но я обнаружил, что в некотором процессе onCreate() не запускается перед другим кодом в том же процессе и, следовательно, не может получить доступ к кэшированному контексту.
Где я должен поместить код инициализации (сохранить контекст приложения), чтобы он запускался перед любым кодом в том же процессе?
Основываясь на обсуждении, которое мы провели в чате, у вас есть проблема, потому что вы пытаетесь получить приложение Context во время статической инициализации какого-либо вспомогательного класса. Я предложил следующее:
Если ваш вспомогательный класс используется только для компонентов Android, то к тому моменту, когда компонент Android вызовет ваш класс, будет вызван Application.onCreate(), и вы сможете получить контекст оттуда. Вам просто нужно подождать, пока вы не получите фактический звонок от компонента Android, чтобы пойти и получить контекст.
Не пытайтесь делать это, как только создается вспомогательный класс. Только делайте это, когда вам это нужно.
onCreate()
в вашем классе Application должен выполняться раньше всего. Пожалуйста, объясните более подробно, что, по вашему мнению, вы наблюдаете.