我有一个Blackberry应用程序,它将对象存储在持久性存储中。更新应用程序后,应该从持久性存储中读取现有值(如果有),并继续使用该值。这适用于某些设备,但不适用于其他设备。我在几个运行OS版本7的设备上进行了测试,所有设备都按预期工作。但是,在使用版本5的设备和使用版本6的另一台设备上,该对象在持久性存储中不再可读。
即使我不对版本号以外的应用程序进行任何更改,也会出现这种情况。保存相同的确切类/对象&从持久性存储加载,以及用于访问它的相同对象ID。
我正在遵循的重现过程是:
我可以持续重现此问题的设备是运行6.0 Bundle 2647的Blackberry 9800(Torch)。
如上所述,这只发生在某些设备上,而不是所有设备上,这让我觉得除了编码错误之外的其他内容可能会在这里发生。
任何人都有关于此问题或如何进一步调试的想法?
答案 0 :(得分:0)
特殊情况。
您确定要提交持久存储吗?当数据存储在存储器中但未提交时,通常会发生类似的情况。如果是这种情况,并且您加载旧版本,存储一些数据并重新启动设备,则数据将不会以持久性存储。
您提到在加载更高版本时该应用仍在后台运行。您可能想要检查commit()
是否被执行。