¿Cómo ejecutar una función de Android cada 15 minutos, y específicamente en la marca de 15 minutos todos los días?

Esta quizás una pregunta repetida aquí pero todavía estoy haciendo frente a ediciones en esto, esperanza allí es una solución alrededor. Gracias por adelantado.

¿Cómo configuro el gestor de alarmas para que se ejecute de manera que ejecute la función específicamente cada 15 minutos, por ejemplo 8:00, 8:15, 8:30, 8:45, 9:00 todos los días, independientemente del momento en que Se inicia la aplicación.

Tomemos un ejemplo si vamos a decir que empecé mi actividad principal de aplicación a las 7:47, y me gustaría que la alarma para comenzar a las 8:00, seguido, junto con 8:15, 8:30 y etc …. ¿cómo debo hacer ? Realmente agradecería si alguna sugerencia es dada ..

Debe configurar dos administradores de alarmas.para el primer tiempo de disparo ajustado calculando el tiempo restante a su hora apropiada (por ejemplo 8:00 Am). Y después de eso debe crear otro administrador de alarmas dentro de su primer administrador de alarmas que se activará cada 15 minutos.

Para calcular el tiempo para configurar el primer administrador de alarmas use el siguiente código:

Calendar c = Calendar.getInstance(); int m = calendar.get(Calendar.MINUTE); long start = System.currentTimeMillis(); int remain=0; if (m<15) { remain = 15-m; } else if (m<30) { remain = 30-m; } else if (m<45) { remain = 45-m; } else { remain = 60-m; } remain=start + remain*60*1000// convert it to milisecond and plus it to current time; 

Editar

Y después de eso puede usar el código abajo para configurar el primer administrador de alarmas:

  AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, FirstReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0); am.set(AlarmManager.RTC_WAKEUP,remain, pi); 

Por lo que ahora en su clase FirstReceiver hacer algo como bellow:

 public class FirstReceiver extends BroadcastReceiver { //do what ever you want + code bellow to setup second alarm manager Intent intent = new Intent(this, SecAlarm.class); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0); AlarmManager am= (AlarmManager)getSystemService(Context.ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(), 15*60*60,pendingIntent); } 

Es mejor establecer un despertador para cada vez que desee con un intervalo de un día

 public void setAlarm(Context context) { AlarmManager am =( AlarmManager)context.getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(context, Alarm.class); PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); am.setRepeating(AlarmManager.RTC_WAKEUP, yourTimeInMilisecond, 24 * 60 * 60 * 1000, pi); // Millisec * Second * Minute } 

Aquí yourTimeInMillisecond es el tiempo que desea configurar la alarma, como si desea configurar la alarma para mañana 9 am, entonces será:

 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 9); calendar.set(Calendar.MINUTE, 0); calendar.add(Calendar.DAY_OF_YEAR, 1); long yourTimeInMilisecond = calendar.getTimeInMillis(); 

Espero que funcione para usted 🙂

 PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (time limits), pendingIntent); 
  • ¿Cómo crear una biblioteca nativa de C ++ en Android?
  • Nueva aplicación de actividad en blanco no funciona
  • ¿Cómo puedo reemplazar el calendario predeterminado del sistema operativo Android?
  • Retrofit-IllegalArgumentException: url inesperada
  • Eclipse está intentando construir los archivos en mis directorios .svn ... ¿cómo puedo decirle que se detenga?
  • Utilización de la base de datos legible y escrita de SQLite
  • Obtenga la colección de nombres de parámetros de la url de Java / Android
  • Android SurfaceView / Lienzo parpadeando después de intentar borrarlo
  • Píxeles a las inmersiones, al escritorio y al android
  • Cómo implementar una devolución de llamada asíncrona utilizando la biblioteca de red de Retrofit de Square
  • Cómo girar un marcador en OSMDroid para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.