我想确定我的应用程序是否第一次运行,因此很难传递它。
首选项或空文件方法不起作用,因为您只需清除应用程序数据或删除空文件即可。
此外,我想离线执行此操作,因此服务器检查也无法正常工作。
也许可以在apk的安装中添加一些代码,这样它只会运行一次。
所以我最好的选择是在周围产生大量的空文件并希望用户不会找到它们,但这非常麻烦。
有没有人曾经以某种方式做过这件事?有什么建议吗?
答案 0 :(得分:3)
首选项或空文件方法不起作用,因为您只需清除应用程序数据或删除空文件即可。
一种可能性是在您的清单中注册一个BroadcastReceiver
,您实际上并没有使用任何东西。首次运行您的应用时,请通过PackageManager
和setComponentEnabledSetting()
停用该接收器。在以后的运行中,您可以通过BroadcastReceiver
和PackageManager
确定是否已禁用getReceiverInfo()
。
如果用户卸载并重新安装该应用,该应用将返回其原始状态。有根设备的用户也可以通过这个。否则,这应该是相当稳固的。
答案 1 :(得分:-1)
我知道你说你不想要文件,但如果你把它们创建为本地内部存储,那么用户就无法删除它们,因为除非它是root用户手机,否则它们无法访问。清除数据“可能”删除它们。
还有另一个解决方案,但它很冗长。使用SQLite database.IT是本地的,我不认为它可以被删除,否则整个应用程序将崩溃