每日闹钟问题,日历.日期和日历.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.DATECalendar.DAYS_OF_MONTH的区别是什么?

问题是您设置您的Calendar实例的日期字段,而不是添加一天。

修改如下:

calendarToSet.set(Calendar.DATE, 1);

:

calendarToSet.add(Calendar.DATE, 1);

还有Calendar.DATECalendar.DAYS_OF_MONTH ?

它们是一样的,DATE只是DAY_OF_MONTH的同义词。

摘自Calendar类的源代码:

public static final int DATE = 5;
public static final int DAY_OF_MONTH = 5;

如您所见,它们表示相同的值

最新更新