我正在尝试通过NSURLRequest
NSURLConnection
方法发送applicationWillTerminate
,请求在客户端调用,但不会到达我的服务器端。
- (void)applicationWillTerminate:(UIApplication *)application
{
[self sendRandomRequestToServer];
}
我猜是因为终止会终止进程
我是对的吗?
如果是这样,我该如何解决这个问题?
谢谢!
更新 -
我知道苹果给你的5秒钟,所以我已经进行了实验 -
我尝试在主线程上运行无限while
循环,并继续在willTerminate
上运行2分钟!!
我还在afterDelay
上使用dispatchAfter
0.1和willTerminate
0.1在后台线程上调用了一个方法 - 并且两者都没有被调用!
所以我不相信“5秒”规则
答案 0 :(得分:2)
您不应在applicationWillTerminate
的后台运行代码。
清除主线程后,即使后台线程仍在工作,该进程也会退出。
applicationWillTerminate
是在主线程上执行的最后一个代码块。这意味着不会调用dispatch_after(time, mainThread)
。