1

我想在应用强制退出或意外崩溃时执行注销功能。要执行此任务,我需要调用 Web 服务以从服务器端数据库中删除我的信息。但是当应用程序强制退出或崩溃时,我无法调用 Web 服务。所以请帮我解决这个问题。

applicationWillTerminate

applicationWillResignActive

委托方法对我不起作用!

谢谢!

4

3 回答 3

4

应用程序可以通过多种方式退出难以(可能不可能)拦截并导致代码执行的地方。您最好让主机系统检测到断开连接或超时并从该端自动注销用户。

于 2012-08-03T21:24:58.603 回答
2

两种解决方法可能有效:

  1. 加入超时功能。如果用户在特定时间范围内未处理信息或触发活动代码进行注册,请自动向 Web 服务请求删除他/她/您的信息。

  2. 在您的应用程序后台不断运行一个小的重复代码。尽可能减少内存占用。让代码每隔一段时间向您的服务器发送一点或字节的信息。如果您愿意,服务器可以自动删除它。如果此“信号”停止,请自动向 Web 服务请求删除他/她/您的信息。

于 2012-08-03T22:16:25.720 回答
1

通过“强制退出”,我假设您的意思是系统杀死了该应用程序。在这种情况下,applicationWillTerminate将调用该方法。来自苹果文档:

...在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可能会调用此方法

我假设当用户从任务切换器中终止应用程序时也会发生同样的情况(您需要测试)。

如果应用程序崩溃,那么由于故障的性质,不会调用任何 appDelegate 方法。

于 2012-08-03T21:33:16.707 回答