Necesito una pequeña ayuda, como dice el título, necesito enviar una notificación al tiempo específico guardado en la base de datos sql (habitación). Probé con alarmManager y Broadcast reciver, pero no puedo averiguar cómo obtener el tiempo de la base de datos mientras la aplicación está cerrada.

-1
Mutata 26 sep. 2019 a las 12:45

1 respuesta

La mejor respuesta

Debes iniciar un servicio en segundo plano, como WorkManager, que puedes hacerlo Periodic (repite cada 15 minutos de tiempo deportivo mínimo). Funcionará incluso si su teléfono celular se reinicia. WorkManager es bastante fácil de configurar y utilizar.

Ejemplo:

class MyBackgroundWorker extends Worker {
  public MyBackgroundWorker(Context context, WorkParameters workParameters){
     super(context, workParameters);
   }

  @Override
  Result doWork(){
    //make room request here
    //after selection is successful schedule your alarm manager notification here
  }
}

Ahora, como empezar:

En el momento que lo necesite:

WorkManager.getInstance(myContext).enqueue(OneTimeWorkRequestBuilder<UploadWorker>()
        .build());

//or you can choose periodic requests.

Consulte la documentación para obtener más información.

0
coroutineDispatcher 26 sep. 2019 a las 09:54