【发布时间】:2015-07-15 02:35:54
【问题描述】:
我想知道,如果我的 iOS 应用程序正在终止,如果我发送 HTTP 请求通知服务器用户下线,服务器会收到此请求吗?
我的代码如下:
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
NSMutableDictionary *para = [[NSMutableDictionary alloc]initWithCapacity:0];
[para setObject:[[NSUserDefaults standardUserDefaults] valueForKey:@"UserBindId"] forKey:@"unionId"];
[para setObject:@(0) forKey:@"OnlineState"];
[Post updateOnlineWithParameters:para withBlock:^(NSDictionary *commitResult, NSError *error) {
NSLog(@"applicationWillTerminate = %@", commitResult);
}];
}
【问题讨论】:
-
当你尝试你的代码时会发生什么?
-
@MatthewBurke - 这通常是一个谨慎的问题(坦率地说,OP 应该已经描述了他的代码的结果),但这是一种经验测试不谨慎的情况.一个积极的结果(这很有可能)并不一定意味着这种模式是安全的(因为它不是)。解决请求和应用程序终止之间的这种竞争的最安全方法是简单地要求操作系统多一点时间来运行有限长度的任务。
-
@Rob - 好点。在了解提问者观察到的内容的更多细节后,我打算提出比赛条件。但这并不是回答问题的最佳方法。