我想在应用强制退出或意外崩溃时执行注销功能。要执行此任务,我需要调用 Web 服务以从服务器端数据库中删除我的信息。但是当应用程序强制退出或崩溃时,我无法调用 Web 服务。所以请帮我解决这个问题。
applicationWillTerminate
和
applicationWillResignActive
委托方法对我不起作用!
谢谢!
我想在应用强制退出或意外崩溃时执行注销功能。要执行此任务,我需要调用 Web 服务以从服务器端数据库中删除我的信息。但是当应用程序强制退出或崩溃时,我无法调用 Web 服务。所以请帮我解决这个问题。
applicationWillTerminate
和
applicationWillResignActive
委托方法对我不起作用!
谢谢!
应用程序可以通过多种方式退出难以(可能不可能)拦截并导致代码执行的地方。您最好让主机系统检测到断开连接或超时并从该端自动注销用户。
两种解决方法可能有效:
加入超时功能。如果用户在特定时间范围内未处理信息或触发活动代码进行注册,请自动向 Web 服务请求删除他/她/您的信息。
在您的应用程序后台不断运行一个小的重复代码。尽可能减少内存占用。让代码每隔一段时间向您的服务器发送一点或字节的信息。如果您愿意,服务器可以自动删除它。如果此“信号”停止,请自动向 Web 服务请求删除他/她/您的信息。
通过“强制退出”,我假设您的意思是系统杀死了该应用程序。在这种情况下,applicationWillTerminate
将调用该方法。来自苹果文档:
...在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可能会调用此方法
我假设当用户从任务切换器中终止应用程序时也会发生同样的情况(您需要测试)。
如果应用程序崩溃,那么由于故障的性质,不会调用任何 appDelegate 方法。