即使按下主页按钮或手机进入待机状态,如何在 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 上的屏幕锁定或主页按钮按下

在 JavaME 中不要让显示器进入待机状态

当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]