2016-11-20 70 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