我試圖實現同時每天通知的鬧鈴。它工作正常。但是當我再次設置警報時,它會在現場通知我,而不用等待時間,因爲設置警報的時間已經過去了。但是,當我將Calendar.DATE
更改爲Calendar.DAYS_OF_MONTH
時,它不通知我。所以,任何人都可以幫助我,我錯了。我在下面分享我的代碼。每日鬧鈴問題,Calendar.DATE和Calendar.DAYS_OF_MONTH區別
public void setNotification() {
PendingIntent pendingIntent = createPendingIntent();
Calendar calendarToSet=Calendar.getInstance();
Calendar currentTime=Calendar.getInstance();
calendarToSet.set(Calendar.HOUR,10);
calendarToSet.set(Calendar.MINUTE,0);
calendarToSet.set(Calendar.SECOND,0);
calendarToSet.set(Calendar.AM_PM,Calendar.AM);
if(calendarToSet.before(currentTime))
{
calendarToSet.set(Calendar.DATE,1);
}
AlarmManager alarmManager = (AlarmManager) MyAppManager.context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendarToSet.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
// Toast.makeText(MyAppManager.context, "set", Toast.LENGTH_LONG).show();
}
public PendingIntent createPendingIntent() {
Intent intent = new Intent(MyAppManager.context, TaffaquhFiddinBroadCastReceiver.class);
intent.putExtra("key", "What_to_say_upon_completing_ablution");
PendingIntent pendingIntent = PendingIntent.getBroadcast(MyAppManager.context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
return pendingIntent;
}
什麼,我試圖做的是設置報警第二天如果時間已過,請幫助。
Calendar.DATE
和Calendar.DAYS_OF_MONTH
之間的區別是什麼?
看看user13的答案。用'set',你設置月份的日期,在你的情況下是第一天(例如01.01。)。使用「添加」,您只需在當前日曆日添加一天。 – Opiatefuchs
所以使用set。將我的日期設置爲本月的第1天?如果是這樣,那麼爲什麼它沒有等待第一天通知我 – FaisalAhmed
是的,它確實和android的alarmManager allways開始,如果你當前設置的日期是過去...這就是爲什麼你立即得到警報。 .. – Opiatefuchs