Восстановление данных после перезапуска приложения?
Добрый день! Занимаюсь разработкой достаточно крупного клиент-серверного приложения, и столкнулся с такой проблемой.
Пользователь, при входе в приложение, авторизуется, и далее продолжает работу. Данные о пользователе хранятся в синглтон-менеджере в виде объекта класса UserData, который хранит в себе personName, logo и т.д. Так же, хранится Map, в которой хранится сессия подключения к серверу (грубо говоря, куки). Синглтон был выбран не случайно, поскольку взаимодействие с UserData распространено по всему приложению, и передавать эту инфу в Intent как Parcelable будет очень громоздко, кроме того, экземпляр должен быть один, везде в приложении.
Проблема заключается в следующем - после того, как task будет уничтожен системой, а пользователь попробует открыть приложение из recent - андроид попытается восстановить последнее состояние приложения (последняя activity, activity task, savedInstanceState), а синглтон UserData будет null, т.к. эта инфа не была сохранена.
Прошу помощи, как решить эту проблему малой кровью?
может быть вам базу поднять если инфы так уж много? Вы можете использовать методы жизненного цикла активити. Хотя может вам и не подойдет, все зависит от реализации. Но всегда будет вероятность потерять данные, если вы их сразу не сохраните
если только для хранения токена и тому подобного то можно просто sharedpreferences, синглтон все же не самое удачное решение, хотя зависит от реализации и архитектуры, но я стараюсь этого избегать
mactepok: куки в android приложении ... тот кто писал бэкэнд, тот еще затейник ))) как вариант перегнать их второку и тоже в sharedpreferences, или в файл, или в бд, в любом случае не думаю что данных очень много(в плане веса), не критично куда их записать