Android – Thread vs AlarmManager

Ok, así que estoy desarrollando una aplicación para Android con noticias. Cuando el usuario ejecuta la aplicación por primera vez, se ejecuta un subproceso independiente, se inicia un bucle de tiempo infinito (verdadero), dentro de un bucle un conector descarga texto de Internet a la notificación y envía esta notificación y luego duerme durante 8 horas. ¿Qué camino es mejor para hacer que funcione mejor, un hilo con el camino como arriba o administrador de alarmas? O, tal vez hay una manera diferente y mejor?

Por ahora he hecho dos maneras de probar, ambos funcionan bien, pero no tengo ni idea de cómo comprobar cuál es más eficiente, que no se matará por android, que come menos recursos, etc.

Y segunda pregunta, ¿hay alguna manera de restaurar el bucle cuando alguien mata la aplicación? Estaba probando con Advanced Task Killer Free y una aplicación Flashy (Flash Player Loader). Maté a la Flashy, pero 5 segundos más tarde la aplicación se estaba ejecutando de nuevo, por lo que propably es posible, pero ¿cómo?

Y para aquellos que piensan que estoy desarrollando anuncios molesto, la aplicación que estoy desarrollando solo lee noticias de Internet.

Espero que alguien ayude, Gracias de antemano.

Thread vs AlarmManager

AlarmManager

Según el documento de Android

El Administrador de alarmas está diseñado para casos en los que desea que el código de la aplicación se ejecute en un momento específico, incluso si su aplicación no se está ejecutando actualmente.

Así que la ventaja que se obtiene aquí es que puede realizar una tarea específica en el futuro, incluso si la aplicación no está en estado de ejecución. (Aquí puede con orgullo llamar a ti mismo buen ciudadano android ya que no están residiendo en la memoria android para hacer su tarea) solo digo a android Quiero que esta tarea se ejecute en un momento determinado, Android iniciará automáticamente su aplicación en ese momento en particular, incluso si no se está ejecutando.

Si quieres lograr lo mismo con el hilo entonces tu hilo debe estar vivo hasta que la tarea de tiempo no empiece a ejecutarse. (La desventaja será Android no va a matar el hilo hasta que el proceso de tiempo está vivo y su huella innecesaria comer memoria) .

Espero que esto despeje su duda.

En su caso, sin duda utilizar el administrador de alarmas. Como regla general, si su aplicación "duerme" y comprueba rutinariamente el contenido nuevo en intervalos largos (8 horas es mucho tiempo), debe utilizar el administrador de alarmas.

De esta manera su aplicación no necesita ejecutarse en segundo plano, por lo que la vida de la batería se conserva, y la funcionalidad de la aplicación no se verá afectada por Android matar el servicio en casos de memoria baja.

Respecto a su segunda pregunta: si el sistema Android mata un servicio debido a la falta de memoria, se reiniciará lo antes posible. Sin embargo, si usted mata el servicio manualmente, entonces no debe reiniciarse, incluso si es posible a través de algún hack.

  • Mostrar identificación de hilo de Android en LogCat
  • RxJava Android: cargar datos de caché en los subprocesos adecuados
  • Suspender subprocesos al ejecutar múltiples AsyncTasks en fragmentos anidados y hace que la aplicación sea lenta
  • DoInBackground tarda mucho en comenzar
  • Pruebas de unidad de Android con múltiples subprocesos
  • Seguridad de subprocesos al realizar iteraciones a través de un ArrayList utilizando foreach
  • La actividad ha filtrado la ventana com.android.internal.policy.impl.PhoneWindow$DecorView@46368a28 que fue agregada originalmente aquí
  • Actualizar la interfaz de usuario de Android desde un subproceso de otra clase
  • Bloqueo de archivos a través de servicios
  • Asynch hilo que detiene el hilo principal de interfaz de usuario
  • Cómo crear un hilo Looper, a continuación, enviar un mensaje de inmediato?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.