ich einen Android-Alarm App machen und Alarmeinstellung mithilfe von Code unter:Alarmmanager nicht auslösen aktuelle Zeit
Calendar alarm = Calendar.getInstance();
alarm.set(Calendar.YEAR, year1);
alarm.set(Calendar.MONTH, month1);
alarm.set(Calendar.DAY_OF_MONTH, day1);
alarm.set(Calendar.HOUR_OF_DAY, hour1);
alarm.set(Calendar.MINUTE, min1);
alarm.set(Calendar.SECOND, 0);
if(alarm.before(Calendar.getInstance()))
{
alarm.add(Calendar.DATE, 1);
Toast.makeText(getActivity(),"You selected the past time",Toast.LENGTH_SHORT).show();
}
else
{
Intent myIntent = new Intent(getActivity(), MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getActivity(), 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(getActivity().ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, alarm.getTimeInMillis(), pendingIntent);
}
Alles funktioniert gut, aber das Problem ist, wenn ich das aktuelle Datum wählen, Monat, Jahr und auch die Aktuelle Uhrzeit wird angezeigt "Sie haben die vergangene Zeit ausgewählt". Wie man dieses Problem löst?
Sie tun die richtigen Sachen, sind Sie sicher, dass die Variablen, year1, month1, etc, korrekt sind? – GiuseppeLabanca
@GiuseppeLabanca Yup, ich benutze den Toast zur Anzeige und es wird korrekt angezeigt. Ich verstehe nicht, warum es "Sie ausgewählt ..." anzeigen wird, wenn ich die aktuelle Zeit und auch das aktuelle Datum –
auswähle Ich denke es wegen der Tatsache, dass, bis der Code die 'if'-Anweisung erreicht, einige Zeit verstrichen ist. Zumindest im Bereich von Millisekunden. Daher möchten Sie möglicherweise ein anderes Kalenderobjekt für 'rightNow' verwenden, das zusammen mit' alarm' initialisiert wird und das verwendet, um das Innere von if zu vergleichen. – Marat