La minuterie ne fonctionne pas
Question
J'essaie de régler une minuterie pour aujourd'hui (la date est :06/04/2014, et si cela compte, l'heure est 23h25), mais la timerTask n'est pas en cours d'exécution.
mon code est le suivant :
private void makeARemainder() {
TimerTask timerTask = new RemindAboutEvent();
// running timer task as daemon thread
Timer timer = new Timer(true);
int day = dayOfMonth;
@SuppressWarnings("deprecation")
Date when = new Date(2014, Calendar.JUNE, 4);
timer.schedule(timerTask, when);
}
class RemindAboutEvent extends TimerTask {
@Override
public void run() {
String title = "Event is comming!";
String messageBody = info.eventName;
showNotification(title, messageBody);
}
}
J'ai essayé de regarder les messages précédents, mais je n'ai pas compris ce qui ne va pas.
MODIFIER:Je tiens à noter que l'activité se termine après la méthode makeARemainder et que l'application fonctionne toujours, mais qu'une activité différente est en cours d'exécution.
Quelqu'un peut-il expliquer la raison pour laquelle la timerTask ne s'exécute pas ?Merci beaucoup!
La solution 2
J'ai résolu le problème par le code suivant:
private void makeARemainder() {
TimerTask timerTask = new RemindAboutEvent();
Timer timer = new Timer(true);
String when = info.eventDayOfMonth + "/" + info.eventMonth
+ "/" + info.eventYear + " " + info.eventHour + ":"
+ info.eventMinute;
try {
timer.schedule(timerTask,
(new SimpleDateFormat("dd/MM/yyyy HH:mm")
.parse(when/* "8/6/2014 20:28" */)));
} catch (ParseException e) {
e.printStackTrace();
}
}
Autres conseils
Ton Date
c'est du passé.Assurez-vous que votre date est dans le futur :
// Using this contructor: Date(int year, int month, int day, int hour, int minute, int second)
Date when = new Date(2014, 6, 4, 13, 45, 00); // This time is in the future for me
// or
Date nowPlus30 = new Date();
timer.schedule(timerTask, now.getTime() + 30 * 1000);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow