Die Referenz für Alarm Manager bestanden hat, sagt, dassandroid verhindern unmittelbare Auslöser des Alarmdienstes, wenn die Alarmzeit für den Tag
Wenn die angegebene Trigger-Zeit in der Vergangenheit ist, wird der Alarm sofort ausgelöst werden.
Ich bin in meiner Anwendung mit diesem Problem konfrontiert. Hier ist mein Alarm Manager Code:
Intent myIntent = new Intent(getActivity(), DinnerAlarmReceiver.class);
pendingDinnerIntent = PendingIntent.getBroadcast(getActivity(), 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingDinnerIntent);
Gibt es eine Umgehungsmöglichkeit für dieses Problem?
----- ------ EDIT
ich einige Code geschrieben haben, zu schätzen, wenn die eingestellte Zeit für den Alarm vor der aktuellen Zeit ist. Hier ist der obige Teil mit entsprechenden Änderungen:
Calendar calendar = Calendar.getInstance();
long currentTime = calendar.getTimeInMillis();
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
long setTime = calendar.getTimeInMillis();
Timestamp setTimestamp = new Timestamp(setTime);
Timestamp currentTimestamp = new Timestamp(currentTime);
if (setTimestamp.after(currentTimestamp))
{
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingDinnerIntent);
}
else
{
}
Was soll ich die alarmManager
im Fall setTimestamp
ist vor currentTimestamp
?