【发布时间】:2016-06-23 18:01:36
【问题描述】:
我正在尝试通过NSURLConnection 在applicationWillTerminate 方法上发送NSURLRequest,该请求在客户端被调用,但它没有到达我的服务器端。
- (void)applicationWillTerminate:(UIApplication *)application
{
[self sendRandomRequestToServer];
}
我猜是因为终止会杀死进程
我说的对吗?
如果是这样,我该如何解决?
谢谢!
更新 -
我知道苹果给你的 5 秒,所以我做了实验 -
我试图在主线程上运行一个无休止的while 循环,并在willTerminate 上继续运行 2 分钟!!
我还在后台线程上使用afterDelay 0.1 和dispatchAfter 0.1 在willTerminate 上调用了一个方法 - 两者都没有被调用!
所以我不相信“5秒”规则
【问题讨论】:
-
你检查过
applicationWillTerminate真的被调用了吗? -
是的,我做到了,应用程序WillTerminate 中的 NSLog 完成了它的工作。
-
只有当您将 UIApplicationExitsOnSuspend 设置为 true 时,五秒规则才适用,这会导致您的应用在用户离开它时立即终止。通常,应用程序终止仅在系统急需资源时才会发生,因此您不想在此时阻止执行任何类型的工作。当应用移入后台时发出您的请求。
标签: ios iphone nsurlconnection terminate