¿Afnetworking tiene soporte de fondo?
-
22-10-2019 - |
Pregunta
Estoy en el proceso de investigar AFNetworking
como reemplazo de ASIHTTPRequest
, y observe una falta completa de información sobre si admite descargas/cargas de fondo.
Con un ASIHTTPReqeust
objeto, todo lo que tienes que hacer es llamar [request setShouldContinueWhenAppEntersBackground:YES]
y la solicitud continuará en segundo plano. ¿Hay algún apoyo para esto en AFNetworking
?
Solución
EDITAR: A partir de Afnetworking 1.0rc1, esto es un explícito rasgo. AFURLConnectionOperation
ahora tiene el método setShouldExecuteAsBackgroundTaskWithExpirationHandler:
, que administra de manera transparente todo esto para ti.
Es una característica implícita, por lo que realmente no pensé en anunciarla. Todo lo que necesitas hacer es:
- (void)applicationWillResignActive:(UIApplication *)application {
__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
[[YourRestClient sharedClient] cancelAllHTTPOperations];
}];
}
O, si administra sus operaciones por su cuenta NSOperationQueue
, sólo -cancelAllOperations
aquí en su lugar.