Можно ли сохранить статический объект Class в Shared Preference? - PullRequest
4 голосов
/ 24 октября 2011

Я разрабатываю проект, в котором я создаю один статический class's object.Поэтому, когда я switch off device at that time all the static objects are cleared, поэтому я хочу сохранить в shared preference.Так что я могу использовать это снова.Можно ли сохранить его в общих настройках?Или любая другая возможность использовать этот объект после перезагрузки устройства?

Ответы [ 4 ]

4 голосов
/ 24 октября 2011

Вы можете сохранять только примитивные типы данных, такие как float, int, string, набор строк или логические значения. Вы можете сериализовать ваши объекты в байтовом потоке, а затем повторно создать их из байтового потока, вы можете взглянуть на этот Ответ также на этот Ответ

2 голосов
/ 24 октября 2011

Вы не можете сохранить объект определенного типа в SharedPreferences. В соответствии с интерфейсом SharedPreferences.Editor вы можете сохранять только примитивные типы данных, такие как: числа с плавающей запятой, целые числа, строки, наборы строк или логические значения.

1 голос
/ 24 октября 2011

Вы, безусловно, можете хранить / восстанавливать состояние статического класса SharedPreferences (vis serialization), НО вам понадобится контекст Application / Activity, чтобы сделать это, что означает, что вы фактически связываете статический класс с экземпляром не статический (Приложение / Деятельность) Класс.

Это немного странно с точки зрения дизайна - ваш класс Static внезапно стал бы более понятным при создании (создании экземпляра), загрузке (восстановлении) и сохранении (сохранении) непосредственно вашей деятельностью?

В противном случае существует возможность доступа к нему, когда его состояние бессмысленно - такова природа статического объекта?

0 голосов
/ 24 октября 2011

Вы не можете напрямую хранить объект класса в предпочтении (за исключением встроенной строки, логического, целого и т. Д.)

Но вы можете хранить переменные из вашего статического класса по своему усмотрению.

Например

Когда ваше устройство выключается, вы должны скопировать все значения статического класса в предпочтение

и во время завершения загрузки вы можете получить все значения из предпочтений вашего статического объекта или во время повторного создания статического объекта вы можете извлечь значения из предпочтений вашего статического объекта.

Загрузка полного приемника

Отключить приемник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...