Android: IntentService o JobScheduler ?. En su lugar, utilice JobIntentService (Parte 1) | de David Cruz | Noviembre de 2020

Si ya tiene un IntentService implementado en su proyecto de Android, siga estos sencillos pasos para actualizar su código:

Primer paso:
Cambie su clase extendida de IntentService a JobIntentService y elimine el nombre de la cadena dentro del constructor

// Old code:
class MyIntentService : IntentService("MyIntentService") { ...
// New Code
class MyIntentService : JobIntentService() { ...

Segundo paso:
Ahora notará que aparece un código de error. No se preocupe, lo arreglaremos ahora.
Notará un error en la función de anulación onHandleIntent. Esto se debe a que la función se nombra en este momento en HandleWork y la intención como parámetro ya no se puede anular, así que, en caso de que esté utilizando Kotlin, elimine el signo de interrogación.

// Old code
override fun onHandleIntent(intent: Intent?) {
// New Code
override fun onHandleWork(intent: Intent) {

Tercera fase:
Es hora de cambiar el nuestro context.startService (intención).
Primero, cree una constante con un número entero.

const val INTENT_SERVICE_ID = 1003

Ahora es el momento de reemplazar el nuestro context.startService (intención) para la función solicitada en JobIntentService. conexión

// Old code
context.startService(intent)
// New code
enqueueWork(context, MyIntentService::class.java, INTENT_SERVICE_ID, intent)

Cuarto paso: (Último pero menos)
Agregaremos una autorización a la nuestra AndroidManifest.xml. necesitamos agregar el siguiente permiso en el archivo etiqueta utilizada anteriormente para el IntentService:

// Permission to add
android:permission="android.permission.BIND_JOB_SERVICE"
// Old code
<service
android:name=".MyIntentService"
android:exported="false" />
// New code
<service
android:name=".MyIntentService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false" />

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *