Сериализация статического класса

В моем приложении Android у меня есть несколько действий, когда пользователь настраивает определенную операцию. На каждом этапе конфигурации хранятся параметры, предоставленные пользователем в статическом классе, который управляет этой операцией. После настройки все действия могут получить доступ к этим параметрам, и все работает отлично. За исключением того, что я хочу сохранить эту конфигурацию, поэтому в будущих исполнениях приложения нет необходимости настраивать ее снова. Как восстановить состояние статического класса? Я не хотел создавать таблицу в базе данных только для хранения этого одного объекта (я думаю, что это уродливое решение). Я также мог бы сбрасывать все конфигурации в SharedPreferences, но у меня есть много параметров в менеджере, и он хранит списки объектов с результатами выполнения операции, и было бы немного боли в заднице, чтобы вручную их хранить в решении Key/Value. Вместо этого я подумывал о сериализации класса в файл, и при запуске приложения я проверяю, существует ли файл, если это правда, я снова десериализую его в свой менеджер. Правильно ли это, или есть более красивые решения? Кроме того, были ли сериализованы объекты списков в этом статическом классе, или мне нужно сериализовать каждый из них отдельно? Я думал о том, чтобы сделать что-то вроде показанного в этом примере

1 ответ

Я думаю, что сериализация в файл - отличная идея. Кажется намного чище и проще, чем иметь дело с базами данных или парами ключ/значение. В противном случае возникает ощущение, что вы сериализуете сериализацию.

И ответить на ваш второй вопрос: Как правило, реализации java.util.List будут реализовывать java.io.Serializable, поэтому вам не нужно делать их отдельно.

Я бы сделал именно то, что вы описали с файлом, и в этом примере.

licensed under cc by-sa 3.0 with attribution.