modes español app ios objective-c background sync

ios - español - request in background swift



¿Cómo se sincroniza el carrusel de Dropbox cuando la aplicación se cierra y se cierra? (2)

He estado tratando de encontrar información sobre esto, pero parece que no puedo encontrar nada. Tengo algunas ideas que me gustaría implementar y esperaba poder sincronizar en el fondo incluso cuando la aplicación no está en el selector de aplicaciones. Esta pregunta de Stack Qverflow parece indicar que iOS no permitirá que la aplicación se active y realice tareas si el usuario abandonó forzadamente . Renuncié a esa idea, hasta ahora.

Recientemente instalé el carrusel de Dropbox y lo he estado usando para cargar fotos automáticamente. Esperé que tuviera que abrir la aplicación de vez en cuando para que las fotos se subieran a Dropbox. Sin embargo, cuando estaba completamente cerrado (forzado a abandonar), mientras estaba en mi computadora noté que se agregaban archivos a Dropbox.

De alguna manera, Carousel está cargando fotos en segundo plano, incluso si la aplicación no está en el selector de aplicaciones. ¿Cómo puede Dropbox hacerlo? ¿Me estoy perdiendo de algo?

He notado este comportamiento intermitentemente, no es como una foto que se carga inmediatamente, pero en ciertos intervalos un lote se carga sin abrir la aplicación y sin ninguna acción mía (el teléfono solo estaba conectado a WiFi con la pantalla apagada )


Hay algunas maneras en que una aplicación puede ejecutarse en segundo plano:

  1. registrarse como una aplicación de localización. El sistema le daría tiempo a la aplicación para ejecutarse cuando lleve su dispositivo y resulte en un evento de cambio de ubicación.
  2. la aplicación puede hacer "actualización de fondo".
  3. la aplicación puede hacer notificaciones automáticas de "contenido silencioso disponible".

La aplicación podría estar usando las 3 opciones. Puedes probarlo por:

  1. deshabilitar el servicio de ubicación: Configuración => Privacidad => Servicio de ubicación
  2. Inhabilitando la actualización de fondo: Configuración => General => Actualización de la aplicación en segundo plano
  3. deshabilitar la notificación de inserción: Configuración => Notificaciones

o simplemente verifique si la aplicación aparece en cada uno de los 3 lugares anteriores.

La aplicación no se incluirá en el selector de aplicaciones si el usuario no lo inicia explícitamente.


Mi mejor estimación es que Carousel (y todas las aplicaciones de iOS con carga de fondo similar) utiliza el servicio de ubicación de cambio significativo para realizar la carga en segundo plano. Este servicio despierta la aplicación incluso si se ha terminado (forzar-salida).

Si deja el servicio de ubicación de cambio significativo en ejecución y su aplicación de iOS se suspende o finaliza posteriormente, el servicio automáticamente activará su aplicación cuando lleguen nuevos datos de ubicación. En el momento del despertar, la aplicación se pone en segundo plano y se le otorga una pequeña cantidad de tiempo (alrededor de 10 segundos) para reiniciar manualmente los servicios de ubicación y procesar los datos de ubicación.

Los documentos del carrusel dejan caer pistas adicionales de que están usando esta técnica: " cambio significativo en la ubicación de su iPhone".