我正在构建一个SDK,我有一个名为mainClass的类,所以在应用程序MainActivity中我让开发人员(使用SDK)在mainClass构造函数中传递app键之类的数据,然后调用register函数仅在应用程序第一次打开时启动注册服务(使用首选项)。
问题是,当开发人员更改应用密钥并再次部署应用程序时(使用新的应用程序密钥),应用程序的首选项(appFirstOpen = false)将保留在那里,并且注册新的应用程序密钥将无法通过。 我考虑过检查构造函数中是否更改了app键,但这似乎是一种开销。是在那里知道应用程序是否已被重新部署以清除首选项,或者是否有其他方法可以通过此问题。
答案 0 :(得分:0)
要回答标题中的问题,不会有新的部署标志。因此,您必须检查其他因素,例如应用程序ID,应用程序或系统中的PackageInfo或ApplicationInfo。如果您只想擦除应用程序的数据,可以手动清除设置中的数据 - >应用程序,或者每次使用SharedPreferences.Editor.clear()擦除首选项数据。
当相同的应用程序针对新的应用ID运行时,您似乎遇到了问题。这对我来说,使用检查应用程序ID的开销是值得做的。我建议每个应用程序ID有一个首选项文件,它将能够处理appFirstOpen条件。