每日报警问题,Calendar.DATE和Calendar.DAYS_OF_MONTH区别
Daily alarm issue, Calendar.DATE and Calendar.DAYS_OF_MONTH difference
我正在尝试实施每天同时通知的警报。它工作正常。但是当我再次设置闹钟时,它会在现场通知我而无需等待时间,因为设置闹钟的时间已经过去了。但是当我将 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
有什么区别?
问题是您 设置 您 Calendar
实例的日期字段,而不是 添加 一天.
更改以下内容:
calendarToSet.set(Calendar.DATE, 1);
为此:
calendarToSet.add(Calendar.DATE, 1);
Also what is the difference between Calendar.DATE
and
Calendar.DAYS_OF_MONTH
?
它们是一样的,DATE
只是DAY_OF_MONTH
的同义词。
来自Calendar
class的源代码:
public static final int DATE = 5;
public static final int DAY_OF_MONTH = 5;
如您所见,它们代表相同的值。
我正在尝试实施每天同时通知的警报。它工作正常。但是当我再次设置闹钟时,它会在现场通知我而无需等待时间,因为设置闹钟的时间已经过去了。但是当我将 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
有什么区别?
问题是您 设置 您 Calendar
实例的日期字段,而不是 添加 一天.
更改以下内容:
calendarToSet.set(Calendar.DATE, 1);
为此:
calendarToSet.add(Calendar.DATE, 1);
Also what is the difference between
Calendar.DATE
andCalendar.DAYS_OF_MONTH
?
它们是一样的,DATE
只是DAY_OF_MONTH
的同义词。
来自Calendar
class的源代码:
public static final int DATE = 5;
public static final int DAY_OF_MONTH = 5;
如您所见,它们代表相同的值。