Subida de imágenes de Android: ¿Utilizar actividad o servicio?

Actualmente utilizo una actividad para subir una imagen a la web, estoy usando AsyncTask y todo está funcionando muy bien. Actualmente utilizo una actividad para lograr esto, básicamente la actividad permite al usuario introducir algunos detalles, tomar una foto y luego enviar, un diálogo de progreso se muestra hasta que se recibe una respuesta. Cuando en conexiones E o G todo el proceso puede ser muy largo (más de un minuto). No es posible terminar la actividad y volver a la actividad anterior (que es lo que quiero) hasta que se reciba una respuesta.

¿Qué opciones tengo. Actualmente, si presiono el botón de inicio el proceso funciona bien y continúa cargando, ¿puede la aplicación ser minimizada la programación? . Veo muchos problemas con este enfoque, por ejemplo, si la actividad se cierra o se produce un error.

El único enfoque que puedo pensar es mover el código de carga real a un servicio, recopilar la información mediante la actividad y permitir que la actividad para iniciar un nuevo servicio para cada carga? Posteriormente, puedo notificar al usuario el éxito o el error utilizando NotificationManager y manejar el nuevo intento en el servicio.

Me di cuenta de que al compartir una imagen de la galería a Facebook la actividad se cierra de inmediato y el usuario recibe comentarios a través de una notificación. Supongo que este enfoque utiliza un servicio para subir la imagen a Facebook?

Cualquier ayuda / consejo sería muy apreciada.

Saludos

Le sugiero que utilice la siguiente configuración:

  1. Utilice su actividad para preparar (configurar / configurar) lo que el usuario desea hacer (por ejemplo, elija la imagen que desea cargar y la carpeta de destino)
  2. Cuando el usuario presiona "Enviar", invoca un servicio que realizará la tarea de carga. Voy a notar algunas ventajas de esto más adelante)
  3. Cuando finalice el servicio, cree una notificación para mostrar los resultados. Debe utilizar un OnGoingNotification para que el usuario sepa que el archivo se está cargando (también puede tener un indicador de progreso)

El uso de un servicio en lugar de una actividad tiene algunas ventajas. Por ejemplo, no tiene que preocuparse por los cambios de configuración (como cambiar la orientación del dispositivo), no "bloquea" al usuario en una actividad en la que no tiene nada que hacer, etc.

Cargar no requiere una interfaz de usuario por lo que el uso de una actividad no es la mejor manera de hacerlo.

En resumen: utilizar un servicio

  • Cargar una foto de la biblioteca con el navegador web de Android
  • Android, subir una foto para alojar en imgur programatically
  • Phonegap's FileTransfer.upload () lanzando el código de error 3 en Android
  • Phonegap Android Filetransfer Error Código 3
  • Subir archivo grande en segundo plano (el servicio se reinicia cuando la aplicación se cierra)
  • Cordova FileTransfer Returning Null Error Code
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.