对于我的iOS
应用程序,当用户a即将删除应用程序时将触发什么事件?
答案 0 :(得分:24)
没有这样的事,抱歉。
您可以做的最好的事情就是检查UIApplicationWillTerminateNotification
通知,但更重要的是保存应用的状态(例如在服务器上),当它转换到背景并且用手指交叉时,您的用户不会在您的应用未运行时删除它。因为一旦您的应用关闭,您就不再拥有任何控制权。
编辑:由于您想在删除应用时清除钥匙串的内容,建议您查看this其他问题。基本上,一些答案建议不要在删除时删除钥匙串的内容,而是在用户首次使用NSUserDefaults启动应用程序时。
编辑:Luis Ascorbe评论了一个想法:使用推送通知的反馈服务(https://stackoverflow.com/a/7912045/157401)当然,这远非完美(并非所有用户订阅通知,通知令牌可能因其他原因而无效,等等。)但这仍然需要考虑。编辑:Starting with iOS 10.3 Beta 2,删除应用时,钥匙串数据似乎不再保留。
答案 1 :(得分:4)
我们无法确切知道用户何时删除了该应用程序。但是,我今天遇到了一种情况,即检测应用程序的卸载,这是设备和用户特定的(仅在特定情况下才会知道)。
以下方案可帮助您根据用户和设备删除数据: 如果您正在为您的应用程序使用其他API服务和身份验证,请确保执行此操作以跟踪它。
请注意,此逻辑仅在您的应用中存在服务调用并且最初有一些身份验证时才有效。 此外,只有当同一用户尝试登录同一设备时,我们才能知道这一点。使用此逻辑无法了解在其他用例中卸载应用程序。
希望这种逻辑可以帮助某人,因为我们现在正在使用这种逻辑。如果我错了,我是一个新手指导。
答案 2 :(得分:0)
我担心没有这样的通知。当您的应用未运行时, 无法通知更改!
相反,当用户按下主页按钮时,即当“重新激活”时,您需要保存任何状态。 (UIApplicationDelegate
中有一个回调,您也可以收听通知。)一般情况下,我不建议收听UIApplicationWillTerminateNotification
,因为在支持多任务的iOS4上很少调用它。