2010-05-21 273 views

回答

6

在5.0 API中有一个新类,名为CodeModuleListener您可以使用它来监控您的模块何时被卸载。 5.0之前,没有挂钩。然而,这里有一些想法去思考和/或尝试:

  1. 使用CodeModuleManager方法getModuleDownloadTimestamp()或getModuleTimestamp()(不知道哪一个会提供正确的信息)来查找“安装时间“,然后将其存储在持久性中。然后,每次启动应用程序时,再次从模块中读取值并将其与持久值进行比较。如果模块值较新,则重新安装该应用程序。

  2. 如果您在永久存储区(即Hashtable的子类)中存储非本地类,则在您卸载应用程序时(因为没有该应用程序,类无意义),它将从持久存储区中删除。因此,您只需创建Hashtable的子类并将其存储在持久性存储中(以您的实际数据为关键字),并在用户卸载应用程序时将其自动从存储中移除。

+0

1.我也必须支持4.5,所以我不能使用这个codeModuleListener。 2.我将创建此类: 私有类CustomHashtable扩展Hashtable implements Persistable {\t} 并将使用Hashtable的所有内容都更改为此CustomHashtable,但是您认为如果我重新安装应用程序,数据将返回? – 2010-05-24 02:06:19

+0

我不确定 - 但它很容易测试和发现。 – 2010-05-24 05:53:58

+0

我在模拟器上做过,但每次我重新启动/重新运行应用程序时,整个以前的数据都丢失了。这不是我想要的功能。 – 2010-05-24 07:26:48

0

也许我误解了,但不应该卸载程序只是删除持久存储?一些卸载程序有一个复选框选项,用户可以控制是否卸载其数据,但它肯定是卸载程序的工作,如果有必要,可以删除它

+0

我试着卸载应用程序,然后重置,然后重新安装应用程序,数据仍然存在,我找不到任何复选框删除数据。 – 2010-05-24 02:04:08

+0

@Ari等待,您是否在问如何为您的程序编写卸载程序来删除数据,或者如何使用现有程序的卸载程序?我假设前者;如果后者你在错误的网站 – 2010-05-24 03:53:16

+0

我想写一个方法,我的应用程序将完全清除所有数据,我重新安装应用程序。 我以为你指着我如何摆脱使用黑莓卸载程序的数据。 – 2010-05-24 07:24:43

相关问题