У меня есть собственный объект класса приложения, в котором хранятся все данные приложения. В Application.onCreate я создаю все объекты приложений и считываю данные из SharedPreferences. Моя проблема заключается в том, что когда приложение переходит в фоновый режим, оно может быть убито. После того, как я выберу приложение из пусковой установки, будет восстановлен стек активности (запускается последнее действие, а не действие Launcher). Проблема заключается в том, что Application.onCreate не вызывается, поэтому все объекты приложений не загружаются, и я сталкиваюсь с проблемами. Каков наилучший способ хранения/восстановления данных/объектов приложения. Я знаю, что это можно сделать в Activity.onCreate/onDestroy, но у меня есть много действий в моем приложении и не знаю, что на них будет сверху, когда приложение будет убито/перезапущено.
Когда вы запускаете свое приложение и оно начинается с последнего действия, а не из активности запуска, это означает, что ваше приложение не было убито. Поэтому в этом случае ваше приложение onCreate не будет вызываться, потому что оно все еще живое.
Метод приложения onCreate вызывается один раз в течение жизненного цикла приложения. Поэтому, пока ваш класс приложения не будет активным, вы должны иметь доступ к всем данным вашего приложения.
Если вам нужно проверить, что происходит, когда ваше приложение было убито, вы должны пойти в "диспетчер приложений" и вручную убить приложение.
EDIT: если ваше приложение является живым, пока ваше приложение имеет ссылку на данные, они не могут быть удалены gc. Итак, в вашем случае, возможно, вы забыли обновить данные правильно. Поэтому сериализация не поможет вам в этом случае, иначе у вас появятся ошибки.
Сериализуйте свой ApplicationObject и сохраните его в Файле (простое) или Хранилище объектов (сложное)
или вы можете реализовать функциональность Serialize/Deserialize
Где, Serialize будет преобразовывать свойства объекта в JSON и хранить
DeSerialize загрузит JSON и заполнит объект и вернется.