Дело в том, что когда я начал изучать разработку для Android, я думал, что буду хранить свои внутренние данные в общедоступных статических переменных в выделенном классе, только для этой цели, чтобы я мог легко получить к ним доступ из любого действия, и это было и до сих пор очень важно, чтобы не было дубликатов, и эти значения всегда уникальны, что-то вроде модели Singleton. Это работает потрясающе, хотя это не самое красивое решение. Проблема начинается, когда пользователь переводит приложение в фоновый режим с помощью кнопки «Домой». Он остается там черт знает сколько времени, может, минут, может, дней, а то и больше... потом он снова открывает приложение, и все эти статические переменные становятся нулевыми, так как система их уже уничтожила. Некоторые из этих переменных являются простыми строками, а некоторые — довольно сложными собственными классами.
Первый вопрос: есть ли какой-то глобальный хук, на который я могу положиться, где я могу сохранить эти данные, когда приложение переходит в фоновый режим? Поэтому, когда пользователь снова выводит приложение на передний план, я могу просто повторно инициализировать эти переменные из сохраненного состояния.
Второй вопрос: как лучше всего сохранить эти сложные данные? Насколько я понимаю, для сохранения Strings SharedPreferences вполне подойдет, а как быть с более сложными классами? Могу ли я использовать SharedPreferences, или я должен использовать что-то еще?
На данный момент это все, что я могу придумать, заранее спасибо за помощь!