ver son segundo que plus plano las forzar detener detencion como cierre cerrar app aplicaciones aplicacion abiertas ios cocoa-touch nsurlsession

son - iOS: ¿Forzar el cierre de la aplicación deshabilita la carga en segundo plano usando NSURLSession?



forzar detencion ios (2)

Ahora puedo confirmar que, después de un montón de pruebas, la tarea en segundo plano se ejecutará bien si la aplicación se pone en segundo plano. Sin embargo, si el usuario fuerza la salida manualmente, entonces iOS cancela todas las tareas programadas en segundo plano. Así que la próxima vez que se inicie la aplicación, recibiré todas las devoluciones de llamada al delegado con el código de error de una tarea cancelada.

Espero que ayude a alguien a mirar lo mismo.

La pregunta es sobre NSURLSession y NSURLSessionUploadTask .

Estoy cargando archivos grandes en el servidor y noté que, cuando fuerzo la salida de la aplicación, la carga de fondo completa se detiene. Sin embargo, cuando la carga se inicia mientras la aplicación se ejecuta a través del Xcode / depurador, entonces mi carga se completa muy bien, incluso cuando detengo la aplicación ejecutándose a través del botón de "detención" de Xcode. Sospecho que forzar el cierre de la aplicación utilizando Xcode simula un comando del sistema iOS y no una acción del usuario.

¿Entonces mi pregunta es si es cierto que iOS cancelará inmediatamente NSURLSessionUploadTask cuando el usuario fuerce la aplicación para salir? Por alguna razón, al menos esperaba una devolución de llamada de error a la aplicación, sin embargo, no sucede nada.


De los docs de Apple sobre la ejecución en segundo plano:

Si las tareas aún no han finalizado y el sistema finaliza su aplicación, el sistema continúa administrando automáticamente las tareas en segundo plano. Si el usuario termina su aplicación, el sistema cancela cualquier tarea pendiente.