2016-11-20 6 views
0

Hallo Ich versuche, Benachrichtigung zu einer bestimmten Zeit in Android zu generieren. Ich bin in der Lage, die Benachrichtigung zu generieren, aber es generiert sofort, während ich es zu einem späteren Zeitpunkt generieren möchte. Kann jemand vorschlagen, wo ich falsch gelaufen bin?Terminplanung Benachrichtigung Android

calendar.set(Calendar.MONTH, 11); 
calendar.set(Calendar.YEAR, 2016); 
calendar.set(Calendar.DAY_OF_MONTH, 20); 
calendar.set(Calendar.HOUR_OF_DAY, 2); 
calendar.set(Calendar.MINUTE, 58); 
calendar.set(Calendar.SECOND, 0); 
calendar.set(Calendar.AM_PM, Calendar.PM); 

long timeinmill = calendar.getTime().getTime() - System.currentTimeMillis(); 
Intent myIntent = new Intent(MakeAppointment.this, MyReceiver.class); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(MakeAppointment.this, 0, myIntent,0); 

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC, timeinmill, pendingIntent); 

Antwort

0

Die aktuelle Zeit nicht subtrahieren. Siehe die AlarmManager#RTC docs.

timeinmill = calendar.getTime().getTime(). 
+0

Vielleicht wollen Sie auch erwähnen, dass '' Calendar' die getTimeInMillis hat() 'Methode, zu vereinfachen, dass ein bisschen, und dass der Monat von einem aus ist, wenn sie den aktuellen Monat wollen. –

+0

Ja, du hast Recht, das wäre direkter. Was die Monatsnummer betrifft, ist dies IMHO ein häufiger Fehler (es sei denn, jemand kommt aus C world :), aber dann gibt es oft einen Fehler mit der Jahreszahl. – rastik

+0

Danke Jungs. Es funktionierte, besonders der Teil, in dem der Monat um eins verging. – user3571631