java - studio - service android ejemplo
Android: ejecuta una tarea en segundo plano cada 15 minutos, incluso cuando la aplicación no se está ejecutando (4)
Necesito crear una tarea en segundo plano que se ejecute cada 10/15 minutos (en realidad no importa, tampoco es bueno), incluso cuando la aplicación no se está ejecutando.
¿Cómo puedo lograr esto? No puedo parecer el envolver mi cabeza alrededor de esto.
Leí que podría usar algún tipo de funcionalidad ejecutable () o usar un servicio en segundo plano o AlarmManager. Estaba pensando en un servicio en segundo plano, ya que también se debe hacer cuando la aplicación en sí no se está ejecutando.
¿Cuál es la mejor manera de hacer esto y cómo podría hacerlo?
Alarm Manager (servicio del sistema) vs Servicio remoto con implementación de alarma interna (proceso separado)?
Alarm Manager es su elección, porque ya tiene lo que necesita, solo tiene que establecer intervalos de alarma
El mejor enfoque se presentó en Google I / O 2018 - WorkManager .
Puedes encontrar documentación here .
Ha determinado la cantidad de tiempo (intervalo) para ejecutar un fragmento de código, es mejor usar AlarmManager porque es más eficiente en cuanto a energía. Si su aplicación necesita escuchar algún tipo de evento, entonces Servicio es lo que necesita.
public static void registerAlarm(Context context) {
Intent i = new Intent(context, YOURBROADCASTRECIEVER.class);
PendingIntent sender = PendingIntent.getBroadcast(context,REQUEST_CODE, i, 0);
// We want the alarm to go off 3 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
firstTime += 3 * 1000;//start 3 seconds after first register.
// Schedule the alarm!
AlarmManager am = (AlarmManager) context
.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
600000, sender);//10min interval
}
También puede lograr esto a través de un SyncAdapter. Aquí hay una muestra para que pueda ver e inspirarse.