Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

199
Vistas
JobService no se reprograma en Android 9

Estoy tratando de hacer que mi aplicación funcione en Android 9. El siguiente código funciona bien hasta Android 8, pero por alguna razón, JobService no se reprograma en Android 9. Se programa la primera vez pero no se reprograma según al conjunto periódico.

 class RetrieveJobService : JobService() { override fun onStartJob(params: JobParameters): Boolean { doBackgroundWork(params) return true } private fun doBackgroundWork(params: JobParameters) { Thread { try { doRetrieveBackgroundStuff(this) jobFinished(params, false) } catch (e: Exception) { jobFinished(params, false) } }.start() } override fun onStopJob(params: JobParameters): Boolean { return false } }

Y aquí mi JobInfo.Builder

 val builder = JobInfo.Builder(jobID, componentName) .setPersisted(true) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { builder.setPeriodic(millis, 15 * 60 * 1000) //15 min } else { builder.setPeriodic(millis) } builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED) val scheduler = context.getSystemService(JOB_SCHEDULER_SERVICE) as JobScheduler val resultCode = scheduler.schedule(builder.build())

¿Algunas ideas? EDITAR: Para que quede claro, este código funcionó bien en Android 8 y versiones anteriores y también funciona en el emulador de Android Studio que ejecuta Android 9. Por lo que puedo probar, no funciona en ningún dispositivo físico que ejecute Android 9.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si pasas por EL ENLACE , encontrarás:

Desafortunadamente, algunos dispositivos implementan la eliminación de la aplicación desde el menú de recientes como una detención forzada. Stock Android no hace esto. Cuando una aplicación se detiene a la fuerza, no puede ejecutar trabajos, recibir alarmas o transmisiones, etc. Por lo tanto, desafortunadamente, no es factible para nosotros solucionarlo: el problema radica en el sistema operativo y no hay solución.

Se trata de un problema conocido. Para ahorrar batería, muchos fabricantes fuerzan el cierre de la aplicación, cancelando así todas las tareas del período, alarmas y receptores de transmisión, etc. Los principales fabricantes son OnePlus (tiene la opción de cambiar), Redmi, Vivo, Oppo, Huawei.

ACTUALIZAR

Cada uno de estos dispositivos tiene administradores de optimización de tipo AutoStartManagers/AutoLaunch/StartManager. Lo que evita que las actividades de fondo comiencen de nuevo. Tendrá que pedirle manualmente al usuario que incluya su aplicación en la lista blanca, para que la aplicación pueda iniciar automáticamente sus procesos en segundo plano. Siga ESTE y ESTE enlace, para obtener más información.

Los métodos para agregar a la lista blanca para diferentes fabricantes se dan en esta respuesta de stackoverflow . Incluso después de agregarla a la lista blanca, es posible que su aplicación no funcione debido al modo DOZE, por lo que deberá ignorar las otimizaciones de la batería

Además, en caso de que se lo pregunte, aplicaciones como Gmail/Hangout/WhatsApp/Slack/LinkedIn, etc., ya están incluidas en la lista blanca de estos administradores de inicio automático. Por lo tanto, no hay efecto en sus procesos de fondo. Siempre recibe actualizaciones y notificaciones oportunas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda