Ich erstelle eine einfache Zeit Picker Dialog und wenn Benutzer Zeit einstellen Ich speichere diese Zeit in einer Kalender-Instanz.Time Picker Unterschied zwischen aktuellen und Time Picker Time Android Alarm
public void onTimeSet(TimePicker timePicker, int i, int i1)
{
tpCalendar = Calendar.getInstance();
tpCalendar.set(Calendar.HOUR_OF_DAY, i);
tpCalendar.set(Calendar.MINUTE, i1);
tpCalendar.set(Calendar.SECOND,0);
updateReminder();
}
Und Berechnung Unterschied in updateReminder() -Methode
private void updateReminder()
{
long currTime = System.currentTimeMillis();
long diff = tpCalendar.getTimeInMillis() - currTime;
long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diff);
Intent reminderIntent = new Intent(this, ReminderReceiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, diff,
PendingIntent.getBroadcast(this, 1, reminderIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
}
Und bassed auf Unterschied, den ich einen Alarm setze. Ich bekomme einen korrekten Unterschied in Millis (Diff-Variable). Das Problem ist jedoch, dass nach dem Einstellen des Alarms und unabhängig davon, welcher Unterschied eingestellt ist, dies nach 5 Sekunden gemeldet wird.
In Rundfunkempfängern ich nur eine Benachrichtigung erstellen. Ich werde jede Hilfe zu schätzen wissen, Danke.
Also nur Sie neue Zeit auf Kalender und es Alarmmanager übergeben? –
ja, nur ausgewählte Zeit ist auf Alarm-Manager eingestellt –
ok, ich dachte, Sie müssen die Differenz zwischen zwei Mal übergeben. Danke, es hat funktioniert. –