Mittels TimePicker einen TimeStamp erstellen?

  • Antworten:1
Niko
  • Forum-Beiträge: 7

05.05.2012, 20:28:45 via Website

Hallo!

Ich möchte einen Wecker programmieren und diesbezüglich benutze ich einen TimePicker, um eine Uhrzeit einzustellen.
In dieser Sache scheint mir der AlarmManager die beste Wahl zu sein. Wenn ich mir nun folgenden Codeausschnitt anschaue, dann wird der AlarmManager dann gestartet, wenn 5 Sekunden verstrichen sind:

1Calendar cal = Calendar.getInstance();
2 // add 5 minutes to the calendar object
3 cal.add(Calendar.MINUTE, 5);
4
5 // Get the AlarmManager service
6 AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
7 am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

Dem cal.getTimeInMillis() werden dann sozusagen 5 Sekunden draufaddiert und dann wird er gestartet. Wenn ich mich nicht täusche, würde die Funktion getTimeinMillis() einen TimeStamp ausgeben. Ich brauche als einen Timestamp, damit hier alles erfolgreich arbeitet, oder?

Nun habe ich, wie oben bereits erwähnt, einen TimePicker, mit dem ich jedoch nur einzelne Daten ausgeben kann, wie z.B.: timePicker.getCurrentHour() oder getCurrentMinute(). Mittels TimePicker möchte ich eine Zeit einstellen, die dann zur gewünschten Zeit den AlarmManager auslöst. Doch wie kann ich dies realisieren?
Gibt es einen Weg, um die Daten vom TimePicker in eine TimeStamp zu verfrachten? Oder gibt es in Android eine Möglichkeit die Differenz zweier Uhrzeiten ausrechnen zu lassen und an der Stelle:
1am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
zu verwenden?

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

05.05.2012, 22:40:56 via App

Hey,
ich würde dafür 2 "Calendar" benutzen. Etwa so
1Calendar alarm, now;
2alarm = Calendar.getInstance();
3now = Calendar.getInstance();
4alarm.set(Calendar.HOUR_OF_DAY, 6);
5alarm.set(Calendar.MINUTE, 30);
6if(alarm.before(now))
7alarm.add(Calendar.DAY_OF_YEAR, 1);

Lg Ansgar

Antworten