说明: 我有日历,我在其中设置事件在给定月份的特定日期。事件存储在数据库中。在事件日发生时,它会触发警报以通知用户。
假设,我的事件在29/05/2016保存,然后在特定日期触发我的警报。
注意:我在特定月份创建了多个事件。也可能在29日或30日。
MyQuestion是如何在特定的多天内触发多重警报。
请理解我想要的流程?
答案 0 :(得分:-1)
如果您想针对特定日期和时间播放闹钟,以下代码可能会帮助您
Calendar cal=Calendar.getInstance();
cal.set(Calendar.MONTH,5);
cal.set(Calendar.YEAR,2012);
cal.set(Calendar.DAY_OF_MONTH,11);
cal.set(Calendar.HOUR_OF_DAY,16);
cal.set(Calendar.MINUTE,10);
cal.set(Calendar.SECOND,0);
Intent _myIntent = new Intent(getApplicationContext(), ReceiverClass.class);
PendingIntent _myPendingIntent =
PendingIntent.getBroadcast(getApplicationContext(), 123, _myIntent,
PendingIntent.FLAG_UPDATE_CURRENT| Intent.FILL_IN_DATA);
AlarmManager myAlarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
//myAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), _myPendingIntent);
myAlarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), _myPendingIntent);
答案 1 :(得分:-1)
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,date.getYear());
calendar.set(Calendar.MONTH,date.getMonth()+1);
calendar.set(Calendar.DAY_OF_MONTH,date.getDate());
calendar.set(Calendar.HOUR_OF_DAY,time.getHours());
calendar.set(Calendar.MINUTE,time.getMinutes());
calendar.set(Calendar.SECOND,time.getSeconds());
Intent myIntent = new Intent(context, AlarmReciever.class);
myIntent.putExtra("ReminderDetails",reminderDetails);
myIntent.putExtra("requestCode", requestCode);
pendingIntent = PendingIntent.getBroadcast(context, (int) (requestCode), myIntent,0);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, date.getTime(),
interval, pendingIntent);
以下代码适用于在指定时间和日期设置日历时间。 而这里最重要的是你在 alarmManager.setInexactRepeating(_)方法的第二个参数中传递了什么,这是 date.getTime(),这是唯一可以工作而不是使用的东西 calendar.getTimeinMillis()方法,因为这会为意图返回一些意外的启动时间。