Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AlarmManager设置在选定日期重复的每周报警_Android_Alarmmanager - Fatal编程技术网

Android AlarmManager设置在选定日期重复的每周报警

Android AlarmManager设置在选定日期重复的每周报警,android,alarmmanager,Android,Alarmmanager,我正在创建报警应用程序,设置多天报警,即重复报警。我的Android报警应用程序视图如下所示 我已经为此编写了代码 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent alarmIntent = new Intent(ALARM_ACTION_NAME); alarmIntent.putExtra("AlarmID", m_alarmId); PendingInt

我正在创建报警应用程序,设置多天报警,即重复报警。我的Android报警应用程序视图如下所示

我已经为此编写了代码

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(ALARM_ACTION_NAME);

alarmIntent.putExtra("AlarmID", m_alarmId);

PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, 0);    

//listofred is a ArrayList of int items.contains int valye for selected days...for My Example listofred:3,4,5,7 
for (int i = 0; i < listOfred.size(); i++) {

                // for alarm ...
                calNow = Calendar.getInstance();
                calSet = (Calendar) calNow.clone();

                int day = calSet.get(Calendar.DAY_OF_WEEK);  //current day...for example.13 dec 2014 - sat  so, day = 7     

                calSet.set(Calendar.DAY_OF_WEEK, listOfred.get(i));
                calSet.set(Calendar.HOUR_OF_DAY, time_picker.getCurrentHour());
                calSet.set(Calendar.MINUTE, time_picker.getCurrentMinute());
                calSet.set(Calendar.SECOND, 0);
                calSet.set(Calendar.MILLISECOND, 0);


                alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                        calSet.getTimeInMillis(), (DateUtils.DAY_IN_MILLIS)*7,
                        alarmPI);

                //parameter long intervalMillis.....(DateUtils.DAY_IN_MILLIS)*7 so that it will repeat after each 7 days...


            }
AlarmManager AlarmManager=(AlarmManager)getSystemService(Context.ALARM\u服务);
意向alarmIntent=新意向(报警\动作\名称);
alarmIntent.putExtra(“AlarmID”,m_AlarmID);
PendingEvent alarmPI=PendingEvent.getBroadcast(这个,m_alarmId,alarmIntent,0);
//listofred是int项的数组列表。包含选定日期的int valye…例如listofred:3,4,5,7
对于(int i=0;i

我的问题是,当我运行此代码时,每次它为Arraylist中的最后一个对象设置报警时,它只会在星期六设置重复报警(即listofred Arraylist中的最后一个对象)。

我知道回答此问题已经很晚了,但这不是因为每个报警事件都传递了相同的挂起意图。 也许这会有帮助

 PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, PendingIntent.FLAG_ONE_SHOT);

将警报设置为每天重复,并让
广播接收器检查是否为“红色”天数之一。如果是,那么做你想做的任何事情-如果不是,什么也不做。嗨@Rahul,你能分享你计算的剩余时间的代码吗?