对于许多人来说,了解如何在测试时从设备中完全删除应用程序会很有用。 我现在已多次下载我的应用程序,同样已多次删除它。问题是当删除应用程序时,它不会删除与我的应用程序相关的持久对象或通过应用程序下载的图像等内容。因此,当我下载下一个版本时,我不知道是否存在与构建持久对象或获取图像有关的内容,因为这些元素已经存在于上一个版本中。 我不知道这是否是缓存的事情。我不知道这是否是预期的,我必须使用一些实用程序删除应用程序后擦除此数据。我无法通过基本的网络搜索找到太多信息。
任何信息都将受到赞赏。
Blackberry Bold 9000. 4.6 OS。使用SD卡和无SD卡进行测试。
答案 0 :(得分:1)
如果在项目中定义了接口,则会在卸载时自动删除存储在PersistentStore中的对象。如果它们来自标准的BlackBerry API,那么它们将一直存在,直到它们被删除。 E.G如果在PersistentStore中保存字符串,它将保留在PersistentStore中,但如果保存您创建的类,它将在卸载时删除。因此,如果您想要自动删除这些对象,只需创建一个包装类并保存它。
在您或某些应用程序删除它们之前,不会删除存储在文件系统上的图像。但是,您应该很容易编写一个清除所有内容的应用程序。
答案 1 :(得分:0)
您可以实施的另一个解决方案是让您的应用程序对其数据有所了解。
创建一个简单的String值,您可以持久化(或者可选地,将其保存在Hashtable中以便以这种方式存储许多属性),其中包含“Version”。
启动GUI应用程序时,将存储的“版本”与应用程序的当前版本进行比较。如果存储的版本不存在,或者存在且匹配,则不采取任何措施。
如果存在且不匹配,则自动清除旧的持久数据;或者提示用户查看他们是否希望删除该数据(哪一个更好取决于您的实施)
您还可以使用CodeModuleListener来侦听卸载事件 - 当发生这种情况时,您也可以在此时进行清理。
(另外,有点无耻的自我推销,我实际上正在为Blackberry开发一个可共享的库,这使得管理持久性变得更加容易,以及桌面数据备份/恢复。我这样做是为了BBSSH项目,但我会将其拆分为一个单独的核心组件库,并在双GPL /可选商业许可下发布。它将包含用于数据清理和数据版本控制的钩子。)