Вкратце: выполнить инициализацию в YourApplication.onCreate
, а не в некоторых LaunchActivity
Документы для проверки:
- Процессы и потоки
- Руководства по API> Действия
Безопасно ли полагаться на запуск при инициализации класса Application?
Да, если вы помните, что приложение может существовать дольше, чем действие и действие может быть уничтожено и воссоздано.Я не уверен, что намерение будет воскрешено. Действие получено: ЗАПУСК или ПРОСМОТР (для сценария, когда действие было убито как слишком тяжелое, в то время как служба была привязана к приложению в течение длительного времени)Класс приложения может быть воссоздан без действия Launch?
да, если последнее видимое действие не было LaunchActivity
проверка жизненного цикла приложения Android и использование статического
Возможно ли, чтопроцесс был прерван, когда телефон спал, и после его пробуждения класс приложения был воссоздан, верхняя активность в стеке была возобновлена, но операция запуска не была запущена, поэтому класс приложения не был инициализирован?
Если бы было запущено несколько различных действий A, B, C и весь процесс был убит, то я думаю, что ОС Android хороша только для создания активности приложений и C, тогда как A и B будутсоздан при доступе, то есть при возврате к ним.
Можно ли предположить, что экземпляр класса приложения будет существовать до тех пор, пока процесс,
да
и что при создании класса Application это эквивалентно «перезапуску» приложения, т.е.начать с нового стека действий (и первое действие в стеке - это действие запуска)?
Я не уверен, что при перезапуске действия запуска будет называться первым,
, но последним, т.е.этот пользователь должен видеть.