Лучший способ, которым я нашел, чтобы обеспечить его бесперебойную работу при обновлении приложения, - это сохранить все ваши постоянные данные в хэш-таблице. Каждая часть данных будет храниться в строке ключ. Вы извлекаете значения этим строковым ключом. Новые версии приложения могут добавлять новые постоянные данные, просто добавляя объекты, с новыми строковыми ключами.
Это позволяет вам гибкость в будущем, не имея проблем с базовым форматом изменения постоянных классов, as Michael warned about. Ваши данные будут всегда быть в постоянном Hashtable
.
Если вы хотите, чтобы убедиться, что постоянные данные удаляются, когда ваше приложение будет удалено, а затем использовать хеш контейнер, уникальные для пакета вашего приложения:
package com.mycompany.myapp;
import net.rim.device.api.util.Persistable;
import java.util.Hashtable;
public class Preferences extends Hashtable implements Persistable {
Экземпляра этого Preferences
класса, например, это то, что вы перейдете к PersistentObject#setContents()
.
Если вы не хотите хотите удалить постоянные данные, просто используйте стандартный java.util.Hashtable
как контейнер для всех ваших данных.
Спасибо за ответ. Я хотел бы обобщить полученные знания: если я сохраню данные в PersistentStore как Object во время обновления версии приложения, данные будут очищены. Но если я сериализую Object to String и сохраняю объект как строку в PersistentStore, эта строка не будет очищена, и обновленная версия приложения сможет читать и анализировать данные. Это решение имеет недостаток: если приложение удаляется, данные из PersistentStore будут выведены на устройства, данные не будут удалены во время удаления. Также не очень хорошо. – Nazar
Если, я собираюсь изменить во всех файлах приложение, что произойдет? Будет ли постоянным быть там или будет очищено для приложения? – AnkitRox