我想知道在更新应用程序版本后,PersistentObject\PersistentStore
中存储的数据是否仍然存在。
我的用例:
1)发布版本为0.1的应用程序。用户将数据保存到PersistentObject \ PersistentStore
2)发布版本为0.2的应用程序。
版本0.1中保存到PersistentStore \ PersistentObject中的数据是否可用于版本为0.2的应用程序?
答案 0 :(得分:2)
是的,只要持久化的类没有任何结构变化,它仍然可用。这意味着如果希望保留持久数据,则无法在版本之间添加或删除字段。
答案 1 :(得分:1)
我发现确保在更新应用程序时顺利运行的最佳方法是将所有持久数据存储在哈希表中。每个数据都将以字符串键存储。您可以通过该字符串键检索值。新版本的应用程序只需添加对象和新的字符串键即可添加新的持久数据。
这使您具有未来的灵活性,同时不会出现持久类更改的基本格式问题,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
作为所有数据的容器。