2016-11-20 21 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'は、彼らが現在の月たい場合は、1ヶ月ではオフになっているビット、ということを簡単にするために' getTimeInMillis() 'メソッドを持っていることを言及することがあります。 –

+0

はい、そうです、それはもっと直接的でしょう。月の数字は、IMHOのよくある間違いです(誰かがCの世界から来ていない限り)。しかし、年番号の間違いがよくあります。 – rastik

+0

ありがとう。それはうまくいった、特に月が1つ消える部分。 – user3571631

関連する問題