2016-11-20 1 views
0

Привет, я пытаюсь создать уведомление в определенное время на Android. Я могу сгенерировать уведомление, но он генерируется немедленно, пока я хочу, чтобы он сгенерировался позднее. Может кто подскажет, где я ошибся.уведомление о планировании 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); 

ответ

0

Не вычесть текущее время. См. AlarmManager#RTC docs.

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

Вы также можете отметить, что 'Calendar' имеет' getTimeInMillis() 'метод, чтобы упростить это немного, и что месяц выключен один, если они хотят текущий месяц. –

+0

Да, вы правы, это было бы более прямым. Что касается номера месяца, это ИМХО - распространенная ошибка (если только кто-то не приходит из мира C :), но тогда часто бывает ошибка с номером года. – rastik

+0

Спасибо, ребята. Это сработало, особенно в той части, где месяц уходит на один. – user3571631