Répéter l'Alarme une fois par semaine dans android
Je suis en train de développer alarme fonctionnalités dans mon application qui s'exécute sur un des jours de la semaine spécifié par l'utilisateur à heure fixe. Le problème ici est que mon planificateur de course pour tous les jours au lieu de courir sur le jour spécifié . voici le code que j'ai écrit pour cette s'il vous plaît aider à résoudre ce
Calendar calNow = Calendar.getInstance();
SimpleDateFormat simpDate;
simpDate = new SimpleDateFormat("kk:mm:ss");
if(in_Date==1)
{
calNow.set(Calendar.HOUR_OF_DAY, hourOfDay);
calNow.set(Calendar.MINUTE, minute);
calNow.set(Calendar.SECOND, 0);
calNow.set(Calendar.MILLISECOND, 0);
}
else if(in_Date==2)
{
calNow.set(Calendar.HOUR_OF_DAY, hourOfDay);
calNow.set(Calendar.MINUTE, minute);
calNow.set(Calendar.SECOND, 0);
calNow.set(Calendar.MILLISECOND, 0);
calNow.set(Calendar.DAY_OF_WEEK,in_SelectedDay);
}
etTime.setText(simpDate.format(calNow.getTime()));
Seconds=calNow.getTimeInMillis();
private void setAlarm(){
//etTime.setText(simpDate.format(calNow.getTime()));
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
if(in_Date==1)
{
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,alarmManager.INTERVAL_DAY,pendingIntent);
}
else if(in_Date==2)
{
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,1 * 60 * 60 * 1000,pendingIntent);
}
}
Je suppose que, ce qui doit être pris en compte, bien sûr, lors d'un redémarrage ou arrêt de ces AlarmManager instance sera effacer, Une semaine c'est long à arriver une telle chose par le propriétaire de l'appareil 🙂
OriginalL'auteur Supreet | 2013-04-26
Vous devez vous connecter pour publier un commentaire.
Dans cette ligne, vous devez régler l'heure de démarrage de l'utilisateur sélectionné les jours, mais ensuite, définissez l'intervalle de
INTERVAL_DAY
.Vous devez utiliser
INTERVAL_DAY * 7
pour s'assurer qu'il se répète sur une base hebdomadaire à la place:L'intervalle est défini en millisecondes.
1 * 60 * 60 * 1000
millisecondes est de 1 heure. Pour obtenir l'intervalle en millisecondes pour une semaine, vous pouvez utiliser7 * 24 * 60 * 60 * 1000
ouINTERVAL_DAY * 7
Vous devez accéder à
INTERVAL_DAY
dans unstatic
façonAlarmManager.INTERVAL_DAY * 7
OriginalL'auteur Leon Lucardie
Est votre alarme se déclenché tous les jours ou toutes les heures ?
Je suis en supposant que votre in_Date est un indicateur pour choisir l'alarme quotidienne ou pour des jours spécifiques .
Mon idée-> régler l'alarme pour tous les jours, consultez votre journée condition dans le récepteur d'alarme .
OriginalL'auteur acid_srvnn