即使按下主页按钮或手机进入待机状态,如何在 iOS 中继续进行 RESTKit 调用
Posted
技术标签:
【中文标题】即使按下主页按钮或手机进入待机状态,如何在 iOS 中继续进行 RESTKit 调用【英文标题】:How to make RESTKit call in iOS continue even if home button is pressed or phone goes into standby 【发布时间】:2014-09-12 18:01:14 【问题描述】:我目前有一个异步调用来上传照片,照片只是一个 base64 编码的字符串,并且它已经调整大小,所以它不是超级大,可能是 800x800 或类似的东西。
我目前遇到的问题是,即使上传成功,用户也无法关闭应用程序,点击主页按钮,或者在应用程序运行时离开应用程序。然而,他们可以在应用程序的其他地方工作,我想这是一个奖励,但是即使他们离开应用程序,我如何让这个呼叫继续?
谢谢!
这是我拥有的代码(它正在工作),(如果他们只是坐在那里,它就可以工作)
NSMutableURLRequest *request = [gad.globalObjectManager requestWithObject:nil method:RKRequestMethodPOST path:@"/api/photo/SavePhoto" parameters:paramsSave];
[request setTimeoutInterval:6000];
AFHTTPRequestOperation *operation = [gad.globalClient HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Photo Upload" message:@"Your photo was successfuly uploaded" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Photo Upload" message:@"Your photo took long to upload or the harvest server is down, please try again when you are on a wi-fi connection" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
];
[gad.globalClient enqueueHTTPRequestOperation:operation];
我使用可变请求的原因是为了增加超时,我读过其他文章说如果我需要更大的超时,我必须直接去 AF Networking,因为 RESTKit 位于顶部,所以我必须这样做.
【问题讨论】:
【参考方案1】:RestKit 网络操作是 AFNetworking 操作的子类,因此您无论如何都可以访问。
在您的 operation
上调用 setShouldExecuteAsBackgroundTaskWithExpirationHandler:
以将其配置为在后台运行。
【讨论】:
【参考方案2】:所以这个问题的答案是删除网格,重建网格并重试。说真的,这是某种 XCode 错误,它可以在另一个 UI 上正常工作
【讨论】:
以上是关于即使按下主页按钮或手机进入待机状态,如何在 iOS 中继续进行 RESTKit 调用的主要内容,如果未能解决你的问题,请参考以下文章
Android - 如何防止按下音量或相机键时手机屏幕打开?
stm32在进入standby状态如何唤醒,求个简单参考代码
在 Swift 3 中检测 iOS9 和 iOS10 上的屏幕锁定或主页按钮按下
当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]