Servicio pegajoso y servicio de intenciones mueren cuando se destruye la aplicación
En Mi aplicación estoy tratando de descargar imágenes aunque el usuario tiene la fuerza de detenerlo y salir con el administrador de aplicaciones recientes mediante swiping. ¿Por qué quiero este comportamiento, tiene sólo una razón y que es:
Porque quiero que el usuario detenga la descarga de mi botón dado en la actividad
- ¿Dónde debería llamarse el servicio android y llamar a GoogleAPIClient mientras se utiliza el patrón MVP en android?
- IntentService - encuentra el número de Intents esperando en la cola
- Prácticas recomendadas para informar de la ubicación del usuario continuamente
- Vincular al servicio desde el nuevo Contexto para cambios de configuración o vincular desde el contexto de la aplicación?
- Mantenga el servicio de ubicación activo cuando la aplicación esté cerrada.
Así que para esto he hecho async tarea en primer lugar, que estaba funcionando bien, incluso la actividad se destruye, Pero cuando destruir / matar a mi aplicación con el administrador de aplicaciones recientes de la aplicación se mata y por lo que el servicio
Entonces moví mi tarea asíncrona al servicio que es pegajoso, pensé que no debe conseguir destruir cuando el usuario cierra la aplicación de las listas recientes de la aplicación, pero el servicio para. Aunque algunas veces empiece de nuevo, pero debido a alguna razón, sólo quiero que no se detenga y descarga como una tienda de Google Play hace. Lo que hagas, no puedes dejar de descargar la aplicación, hasta que no uses el botón de detención en la aplicación Google Play Store.
Entonces leí sobre IntentService, sobre el servicio de intención que leí,
Puede ejecutar el servicio de intención y olvidarse de él, ya que se detiene después de la finalización de la tarea.
Así que creo que esto es algo que no se puede matar, ni siquiera el usuario lo detiene o cierra la aplicación de la lista de aplicaciones recientes al pasar, ya que el servicio de intención realizaría su tarea y se detendría
Pero todo en la vena. He leído muchas cosas sobre el servicio y cómo curar el servicio de no ser asesinado. Llegué a saber acerca de iniciar el servicio como forground.
Pero qué otras maneras otras aplicaciones de la clase superior adoptan para guardar el fondo que trabaja todo el tiempo, como aplicaciones de la seguridad, aplicaciones basadas gps, y las aplicaciones del antivirus cuyos servicios funcionan todo el tiempo en fondo. Puedes examinar la misma aplicación de comportamiento de Google Play Store, puedes empezar a descargar cualquier aplicación y salir de la aplicación de Play Store, incluso desde la bandeja de aplicaciones recientes, pero seguirá descargando hasta y, a menos que vayas a la notificación, haz clic en notificación. Para colocar donde finalmente vea detener el botón de descarga para detener la descarga de la aplicación.
Entonces, ¿cómo puedo lograr esto? Lo que está mal con el servicio o qué más puedo usar para obtener el mismo comportamiento que google play tienda tiene.
Por favor guíame . Sus comentarios y discusión serán apreciados.
- El número de teléfono no se muestra onCallStateChanged Android
- Suprimir notificaciones de un servicio si la actividad se está ejecutando
- Android IPC, servicio no obtener instanciado
- Android aidl no puede enlazar al servicio, cuando el host se instala después de que el cliente
- Vinculación de un servicio a un android.app.Activity vs Enlace a un android.app.Application
- Cómo mostrar una imagen utilizando el servicio en android
- Hacer que la actividad se ejecute en segundo plano
- Cómo evitar que el servicio se ejecute de nuevo si ya está ejecutando android
Parece que quieres ejecutar tu servicio en un proceso aparte de tu aplicación principal para que no se mate si la aplicación se elimina de la lista "Tareas recientes".
Esto se hace posible mediante el uso del atributo "Proceso" explicado en la documentación aquí: http://developer.android.com/guide/topics/manifest/service-element.html#proc
Lo que usted necesita es un ForegroundService . La guía de desarrolladores de android acerca de los servicios indica que:
Un servicio de primer plano es un servicio que se considera que es algo que el usuario está activamente consciente y por lo tanto no es un candidato para el sistema para matar cuando la memoria es baja. Un servicio de primer plano debe proporcionar una notificación para la barra de estado, que se coloca bajo el encabezado "En curso", lo que significa que la notificación no se puede descartar a menos que el servicio se detiene o se quita de primer plano.
- ¿Pueden usarse cargadores sin proveedor de contenido o combinación es obligatorio?
- Pregunta la ayuda sobre el problema de lectura de AndroidManifest.xml