如何在android中的特定日期设置闹钟?

时间:2016-05-27 09:17:22

标签: android

说明:            我有日历,我在其中设置事件在给定月份的特定日期。事件存储在数据库中。在事件日发生时,它会触发警报以通知用户。

假设,我的事件在29/05/2016保存,然后在特定日期触发我的警报。

注意:我在特定月份创建了多个事件。也可能在29日或30日。

MyQuestion是如何在特定的多天内触发多重警报。

请理解我想要的流程?

2 个答案:

答案 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()方法,因为这会为意图返回一些意外的启动时间。